Finite field serial-serial multiplication/reduction structure and method

ABSTRACT

The present invention contemplates a method or cryptographic system for communicating securely over an insecure communication channel of the type which communicates a message from a transmitter to a receiver. The method includes the step of providing a finite filed serial-serial multiplication/reduction structure wherein an initial delay and clock-cycle are inherently independent of word length and wherein input operands are serially entered one digit at a time and the output result is computed serially one digit at a time, wherein the digit size can be one bit or more. As disclosed, the multiplication structure is scalable and a serial transfer reduces the bus width needed to transfer data back and forth between memory and a multiplication/reduction step. A finite field multiplication structure in which an operand multiplication and a finite field reduction are formulated as a serial-serial computation is also disclosed. Further, a digit serial-serial finite field multiplication/reduction method and structure as an integral operation in a cryptographic system is disclosed. In such methods and structures, the inherent word length independence of the initial delay is achieved by defining both operand multiplication and field reduction as serial-serial computation. In such computations, all of the numbers needed for the computation are fed serially one digit at a time. Therefore, the inter-connection between the memory module and the multiplier module need only to support the transfer of data one digit at a time.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates to high-radix finite field multiplication methods and architectures, which constitutes an integral operation in cryptographic systems.

2. Field Multiplication in Cryptography

Due to the security requirements of data transfer and digitization, the current need for cryptography for data security mechanism is ever growing. The basic principle of cryptography is that a plaintext is converted into a ciphertext through encryption using a particular encryption key. When a receiver receives the ciphertext, decryption with a key that is related to the encryption key can recover the plaintext. Because the data is transferred or stored as ciphertext, data security is achieved since an adversary cannot interpret the ciphertext.

In particular, public-key cryptography enables secure communication between users that have not previously agreed upon any shared keys. This is most often done using a combination of symmetric and asymmetric cryptography: public-key techniques are used to establish user identity and a common symmetric key, and a symmetric encryption algorithm are used for the encryption and decryption of the actual messages. The former operation is called key agreement. Prior establishment is necessary in symmetric cryptography, which uses algorithms for which the same key is used to encrypt and decrypt a message. Public-key cryptography, in contrast, is based on key pairs. A key pair consists of a private key and a public key. As the names imply, the private key is kept private by its owner, while the public key is made public (and typically associated to its owner in an authentic manner). In asymmetric encryption, the encryption step is performed using the public key, and decryption using the private key. Thus the encrypted message can be sent along an insecure channel with the assurance that only the intended recipient can decrypt it.

The use of cryptographic key pairs is disclosed in the U.S. patent of Hellman U.S. Pat. No. 4,200,770 which is incorporated herein in its entirety by reference. The Hellman patent also disclosed the application of key pairs to the problem of key agreement over an insecure communication channel. The algorithms specified in the aforementioned patent relies for their security on the difficulty of the mathematical problem of finding a discrete logarithm.

In order to undermine the security of a discrete-logarithm based crypto-algorithm, an adversary must be able to perform the inverse of finite field exponentiation (i.e., solve a discrete logarithm problem). There are mathematical methods for finding a discrete logarithm (e.g., the Number Field Sieve), but these algorithms would take an unreasonably long time using sophisticated computers when certain conditions are met in the specification of the crypto algorithm.

In particular, it is necessary for the used numbers involved to be large enough. The larger the numbers used, the more time and computing power is required to find the discrete logarithm and break the cryptosystem. On the other hand, very large numbers lead to very long public keys and transmissions of cryptographic data. The use of very large numbers also requires large amounts of time and computational power in order to perform the crypto algorithm. Thus, cryptographers are always looking for ways to minimize the size of the numbers involved, and the time and power required, in performing the encryption and/or authentication algorithms. The payoff for finding such a method is that cryptography can be done faster, cheaper, and in devices that do not have large amounts of computational power (e.g., hand-held smart-cards).

A discrete-logarithm based crypto-algorithm can be performed in any mathematical setting in which certain algebraic rules hold true. In mathematical language, the setting must be a finite cyclic group. The choice of the group is critical in a cryptographic system. The discrete logarithm problem may be more difficult in one group than in another for which the numbers are of comparable size. The more difficult the discrete logarithm problem, the smaller the numbers that are required to implement the crypto-algorithm while maintaining the same level of security. Working with smaller numbers is easier, more efficient and requires less storage compared to working with larger numbers. So, by choosing the right group, a user may be able to work with smaller numbers, make a faster cryptographic system, and get the same, or better, cryptographic strength than from another cryptographic system that uses larger numbers.

A method of adapting discrete-logarithm based algorithms to the setting of elliptic curves was disclosed independently by V. Miller, in “Use of elliptic curves in cryptography” on Advances in Cryptology—CRYPTO'85, LMCS 218, pp. 417-426, (1986) and by N. Koblitz, “A Course in Number Theory and Cryptography,” (1987). It appears that finding discrete logarithms in this kind of group is particularly difficult. Thus elliptic curve-based crypto algorithms can be implemented using much smaller numbers than in a finite-field setting of comparable cryptographic strength. Hence, the use of elliptic curve cryptography is an improvement over finite-field based public-key cryptography. The Elliptic Curve Cryptosystem relies upon the difficulty of the Elliptic Curve Discrete Logarithm Problem (ECDLP) to provide its effectiveness as a cryptosystem. Using multiplicative notation, the problem can be described as: given points B and Q in the group, find a number k such that B^(k)=Q; where k is called the discrete logarithm of Q to the base B. Using additive notation, the problem becomes: given two points B and Q in the group, find a number k such that kB=Q.

In an Elliptic Curve Cryptosystem, the integer k is kept private and is often referred to as the secret key. The point Q together with the base point B are made public and are referred to as the public key. The security of the system, thus, relies upon the difficulty of deriving the secret k, knowing the public points B and Q. The main factor that determines the security strength of such a system is the size of its underlying finite field. In a real cryptographic application, the underlying field is made so large that it is computationally infeasible to determine k in a straightforward way by computing all the multiples of B until Q is found.

The core of the elliptic curve geometric arithmetic is an operation called scalar multiplication which computes kB by adding together k copies of the point B. Scalar multiplication over elliptic curve is also referred to as exponentiation over elliptic curve.

Another well-known public key cryptosystem is Rivest, Shamir, Adleman (RSA) which is also based on the discrete logarithm problem of over the field GF(p). RSA requires field exponentiation over GF(p).

In what follows, field exponentiation is used to refer to scalar multiplication in elliptic curve cryptography, as well as finite field exponentiation in RSA cryptography.

A drawback of such cryptographic systems is that calculation of field exponentiation remains a daunting mathematical task even to an authorized receiver using a high speed computer. With the prevalence of public computer networks used to transmit confidential data for personal, business and governmental purposes, it is anticipated that most computer users will want cryptographic systems to control access to their data. Despite the increased security, the difficulty of finite field exponentiation calculations will substantially drain computer resources and degrade data throughput rates, and thus represents a major impediment to the widespread adoption of commercial cryptographic systems.

Accordingly, a critical need exists for an efficient finite field exponentiation method and apparatus to provide a sufficient level of communication security while minimizing the impact to computer system performance and data throughput rates.

Field exponentiation over an elliptic curve is heavily dependent on field multiplications. Point addition and doubling, which are the basic operations for exponentiation over an elliptic curve, require many field multiplication operations.

Field multiplication is also the basic operation used to compute field exponentiation in RSA cryptography, which is used in smart cards or other secure devices. RSA requires the rapid finite field multiplication of large integers, for example 512- or 1024-bits in length, in order to carry out finite field exponentiations.

Therefore, field multiplication is widely used in encryption/decryption, authentication, key distribution and many other applications such as those described above.

3. Prior Art of Field Multiplication:

Finite field multiplication can be described as follows. Given two elements, X and Y, that are members of a field, then X and Y, can be represented as polynomials, $\begin{matrix} {X = {\sum\limits_{i = 0}^{d - 1}{x_{i}\mu^{i}}}} & (1) \\ {Y = {\sum\limits_{i = 0}^{d - 1}{y_{i}\mu^{i}}}} & (2) \end{matrix}$ where

-   -   (i) in case of GF(p), μ=2^(r) is the radix and x_(i),y_(i) are         radix-2^(r) digits which could also be represented in redundant         form, and     -   (ii) in the case of GF(p^(m)), μ=α^(r), α is the root of the         generator polynomial, and x_(i) and y_(i) are digit polynomials         of X and Y respectively and whose coefficients are elements of         Z_(p).

The field multiplication of X and Y is given by, R=XY mod G(μ)   (3) where $\begin{matrix} {{G(\mu)} = {\sum\limits_{i = 0}^{d}{g_{i}\mu^{i}}}} & (4) \end{matrix}$ where

-   -   (i) in the case of GF(p), G(μ) is the modulus M and g_(i) are         radix-2^(r) digits which could also be represented in redundant         form, and     -   (ii) in the case of GF(p^(m)), G(μ) is the generator polynomial,         and g_(i) is a digit polynomial of G(μ) with coefficients that         are elements of Z_(p).

Finite field multiplication consists of two stages: operand multiplication and field reduction. Several field multiplication algorithms have been proposed. It is well known that field reduction after operand multiplication is not as efficient as reduction during multiplication. In the later, the final result of field multiplication is obtained by applying corrections to partial products as they are generated and accumulated.

Field reduction of the generated partial products can be carried out iteratively starting form the most significant digit or the least significant digit.

Montgomery multiplication is a famous reduction-during-multiplication algorithm, which starts from the least significant position. The original Montgomery algorithm was proposed for GF(p) and is based on binary representation of the elements of the field. However, it has been generalized for other fields as well as for higher radix representation of the elements of the field.

In Montgomery multiplication, each digit of the operand X, starting with the least significant digit, is multiplied with the digits of the operand Y. The field reduction is carried from the least significant digit, since the least significant digits are generated first. The algorithm can be described using the following iteration, R _(l−1)=(x _(l−1) Y+μ ⁻¹ R _(l−2))mod G(μ)   (5)

The final field multiplication result of Montgomery algorithm has the form, R=XYμ^(−d) mod G(μ)   (6)

The factor μ^(−d) is inherent in all least significant digit first algorithms, because field reduction starting from the least significant digit is equivalent to a division by μ⁻¹ in each iteration as shown in equation (5).

Least-significant-digit-first algorithms are more natural for GF(p) due to the carry propagation from the least to most significant digits. However, these algorithms are not usually used for GF(p^(m)) since there is no carry propagation between digit's significance. For GF(p^(m)), most-significant-digit-first algorithms are more efficient since they do not result in any additional scaling factor such as that in equation (6), and produce the final un-scaled result at the end of the multiplication algorithm.

Least-significant-digit-first and most-significant-digit-first algorithms can be implemented using a variety of structures. Most of the existing structures are effectively based on different time-space mapping of the dataflow diagrams. The dataflow consists of nodes and edges. The nodes represent functional units and the edges represent flow of data between nodes.

It should be noted that for GF(p^(m)), the carry edges do not exist since there is no carry propagation between digit's significance.

On one end of the spectrum, an array of processing elements is used, where each processing element performs the computation of a single node in graphs such as those shown in FIG. 1. Such realizations are usually referred to as parallel implementations.

Parallel finite-field multipliers have been reported in the U.S. patent of Geong, U.S. Pat. No. 6,151,393 and in the published applications of Chen et al., No. 2002/0184281 and Glaser et al., No. 2003/0009503 each of which is incorporated herein in its entirety.

Parallel implementations are not efficient for large word-lengths such as those encountered in cryptography due to the huge area and high power requirements.

The other end of the spectrum is to use one processing element to implement the operation of all the nodes in the graphs such as those in FIG. 1. Such realizations are usually referred to as serial implementations. Serial implementations are not efficient for large word lengths such as those encountered in cryptography due to their long execution time.

Other variations of the basic serial finite field multiplication algorithms have also been proposed where a digit of one operand is multiplied by a block of another operand as shown in the published patent applications of Chin-Long Chen et al., Nos. 2002/0116429, 2002/0116430 and 2002/0110240 each of which is incorporated herein in its entirety. A single digit-block multiplier is used to carry out the complete multiplication in a serial fashion. Usually, the block size is larger than the digit size to speed up the computations of the basic serial multiplier. As a consequence, such multiplication algorithms require different bus-widths between the memory module and the digit-block multiplier module.

Another implementation style is mapping dataflow graphs such as those in FIG. 1 into a linear array of processing elements. The mapping can be done in one of two ways: (i) by projecting along the vertical axis to obtain the serial-parallel implementation as disclosed in an article by M. C. Mekhallalati, M. K. Ibrahim, and A. S. Ashur, entitled “Radix Modular Multiplication Algorithm” published in the Journal of Circuits and Systems, and Computers, Vol. 6, No. 5, pages 547-567, 1996. or (ii) by projecting along the horizontal-axis to obtain the serial-serial implementation as disclosed by A. F. Tenca, and C. K. Koc, in “A Scalable Architecture for Montgomery Multiplication” in Cryptographic Hardware and Embedded Systems, Lecture Notes in Computer Science No. 1717, pages 94-108, Springer Verlag, Berlin, Germany, 1999 each of which are incorporated herein in their entirety by reference.

It is well know that using more than one processing element gives a better trade-off between area and time than the parallel or serial realization.

In serial-parallel structures, the digits of one of the input operands are fed serially while the digits of the other input operand must be fed in parallel. The reason is that the digits of one of the operands are all required at every cycle.

Serial-parallel realizations have been reported in the above mentioned patents and articles.

In addition, serial-parallel structures have been reported in the U.S. Pat. No. 5,414,651 of Kassels entitled “Arithmetic Unit for Multiplying Long Integers Modulo M and R.S.A. Converter Provided With Such Multiplication Device” and U.S. Pat. No. 6,377,969 of Orlando et al. entitled “Method for Multiplication in Galois Fields Using Programmable Circuits” both of which are incorporated herein in their entirety by reference.

The advantage of the serial-parallel realization is that the first digit of the product needed to perform field reduction is obtained after an initial delay of one cycle. Defining the initial delay as the number of cycles required before the first digit of the result needed for field reduction is obtained, it is clear that the serial-parallel realization inherently has an initial delay which is independent of the word length. The drawbacks of the serial-parallel realizations are as follows:

-   -   (i) it requires parallel loading of the digits of one of the         operands, since the digits of one of the operands are all         required at every cycle. It is significant to note that the use         of parallel transfer of data back and forth from memory and the         multiplication structures is a major drawback for large word         lengths such as those encountered in cryptography. The reason is         that parallel loading for large wordlenghs requires large         bus-widths which are costly in area and have a significant         impact on the execution time.     -   (ii) it also has to support serial loading of the other operand         and hence the hardware must support buses with different         bus-widths between the memory module and the multiplier module;         one being for parallel communication and one for serial         communication.

The major advantage of serial-serial implementations based on dataflow such as those in FIG. 1 is that all the operand communications are serial in nature and hence no parallel loading is needed.

It should be noted that both serial multiplication structures and serial-serial multiplication realizations require only serial communication for all operands and hence require busses with the same bus width. Serial-serial multipliers have the advantage of requiring less number of memory accesses than their serial counterparts. Also, to achieve the same execution time, the bus width of the serial multiplier needs to be higher than that needed in the serial-serial multiplier. Both of these features make serial-serial multiplier ideal for low power devices such as smart cards.

It should be noted that the serial-parallel multipliers in the aforementioned patents can be modified by loading the operand whose digits are needed at every cycle serially one digit at a time into a serial-in-parallel-out register. The drawback is that this will incur an initial delay prior to the commencement of the multiplication operation, which is dependant on the word length. The structures disclosed in the U.S. patent of Monier, U.S. Pat. No. 5,742,534 and Walby U.S. Pat. No. 4,797,848 use a serial-in-parallel-out register. Such structures incur an initial delay prior to the commencement of the multiplication operation which is dependent on the word length.

The structures in these patents suffer from the same drawback in that the use of a serial-in-parallel-out registers will incur an initial delay prior to the commencement of the multiplication operation, which is dependant on the word length.

Serial-serial structures that do not require all the digits of all the operands in every cycle have been proposed. This can be achieved by folding the structure in FIG. 1 along the horizontal axis. One such structure was reported in the aforementioned article by A. F. Tenca and C. K. Koc. However, such structures have a major drawback in that the initial delay and clock cycle are dependant on the word length of the operands. For large word lengths such as those in cryptography, this long initial delay and clock cycle represent a significant drawback.

The authors of the structure in the aforementioned A. F. Tenca and C. K. Koc article use extra pipelining registers to make the initial delay and the clock cycle independent of the word length. It is significant to note that the use of extra pipelining registers will significantly increase the hardware and will require additional clock cycles, which are proportional to the word length.

A serial-serial finite field reduction structure is disclosed in the U.S. Pat. No. 5,101,431 of Even for “Systolic Array for Modular Multiplication”. However, as disclosed therein, the initial delay and clock cycle are dependent on the word length of the operands. For large word lengths such as those in cryptography, the long initial delay and clock cycles are a draw back. The patent also discloses the use of extra pipelining registers to make the initial delay and the clock-cycle independent of the word length. It is significant to note that the use of extra pipelining registers will significantly increase the hardware and will require additional clock-cycles, which are proportional to the word length.

Another serial-serial structure is disclosed in a published patent application of Mellott et al. No. 2002/0161810 entitled “Method and Apparatus for Multiplication and/or Modular Reduction Processing.” In this structure the initial delay and clock-cycle are also dependent on the word-length. However, to reduce the effect of word length dependency, the inventors use a multi-port adder, which may be implemented for example as a tree adder. This will reduce the effect of word length dependency, but it will not eliminate it completely.

It is also significant to note that the use of a multi-port adder will lead to an irregular structure, and hence the structure is not systolic, i.e. it is not modular, and requires irregular communication

Therefore there is a need for a realization which (i) allows serial loading of all needed operands, and (ii) has an initial delay and clock cycle which are inherently independent of the word length.

It should also be noted that any new realization must allow for scalability, which is an additional requirement for the application of finite field multiplication in cryptography. Scalable multiplication structures are those that can be reused or replicated in order to generate long-precision results independently of the data path precision for which the unit was originally designed. Scalability is needed because the key lengths could be increased for higher security. Any cryptographic hardware such as smart cards should not become obsolete with a new key length.

SUMMARY OF THE INVENTION

In essence, the present invention contemplates a method or cryptographic system for communicating securely over an insecure communication channel of the type which communicates a message from a transmitter to a receiver. The method includes the step of providing a finite filed serial-serial multiplication/reduction structure wherein an initial delay and clock-cycle are inherently independent of word length and wherein input operands are serially entered one digit at a time and the output result is computed serially one digit at a time. The invention also contemplates a serial transfer for reducing the bus width needed to transfer data back and forth between memory and multiplication.

A mathematical description of finite field multiplication is outlined which is inherently and directly amenable for serial-serial implementation.

It should be noted that in serial-serial structures: (i) all the input operands are only needed serially, i.e. one digit at a time, and (ii) the output result is computed serially one digit at a time.

Defining the initial delay as the number of cycles required to obtain the first digit of the multiplication result needed for field reduction, the major advantage of the new formulation over the existing serial-serial ones is that it inherently has an initial delay and clock cycle which is independent of the operand word length. This is quite significant for cryptography which requires large word lengths, because the security of cryptosystems is usually proportional to the word length of the operands.

The structures in this invention are the first finite field serial-serial multiplication/reduction structure where the initial delay and the clock cycle are inherently independent of the word length. It is inherent in that this independence of the word length is achieved without:

-   -   1—the need for extra pipeline registers     -   2—the need for an irregular adder structure     -   3—the need for serial-in-parallel-out register for the input         operand     -   4—the need for parallel-in-serial-out register for the output         operand

This inherent word length independence of the initial delay and clock cycle has been achieved by describing both the operand multiplication and the field reduction as serial-serial computations in one formulation.

The resulting structures (i) give better trade-off than purely parallel or serial implementation with respect to time and area, (ii) do not require parallel loading and hence overcomes the limitation of serial-parallel structures, (iii) have an initial delay and clock cycle which is inherently independent of the word length and hence they do not suffer from the drawback of long initial delays and clock cycles inherent in existing serial-serial realizations.

It should be noted that existing serial-serial multipliers can be made to have an initial delay and clock cycle which is independent of the word length by the use of pipelining. However, it is significant to note that the use of extra pipelining registers will significantly increase the hardware and will require additional clock cycles, which are proportional to the word length.

The new description is scalable and applicable for any field. Moreover, it is applicable for both least-to-most or most-to-least computations.

Furthermore, one efficient systolic implementation is outlined.

Since the invention is applicable to both least-to-most and most-to-least, new bi-directional as well as hybrid algorithms and structures are also disclosed.

DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic illustration of different finite field reduction data flows;

FIG. 2 is a schematic illustration of a basic serial-serial finite field multiplier in accordance with the present invention;

FIG. 3 shows the general structure for a finite field multiplier cell in accordance with the present invention;

FIG. 4 illustrates an area-efficient serial-serial finite field multiplier in accordance with the present invention;

FIG. 5 illustrates two implementations of the input feeding circuit in accordance with the present invention;

FIG. 6 illustrates a serial-serial finite field multiplier as a systolic array in accordance with the present invention;

FIG. 7 illustrates a systolic serial-serial finite field multiplier cell for use in practicing the present invention;

FIG. 8 illustrates pipelining for a serial-serial finite field multiplier; and

FIG. 9 is a block diagram of a scalable serial-serial finite field multiplier.

FIG. 10 is a schematic illustration of the time-space mapping of finite field multiplication in accordance with the present invention.

DESCRIPTION OF THE PREFERRED EMBODIMENTS OF THE INVENTION

The present invention is particularly applicable to elliptic curve cryptography and more particularly to XZ Elliptic Curve Cryptography of the type disclosed in the co-pending application filed on Mar. 3, 2004 in the name of Mohammad Ibrahim and which is incorporated herein in its entirety by reference.

As contemplated in the earlier invention, an improved method for communicating securely over an insecure channel using elliptic curve cryptography. The improvement comprises applying projective coordinates in two stages. In a first of the two stages, a projective coordinate is used to embed extra message data bits in the Z coordinate. Then, in a second stage a projective coordinate is used to remove a division operation at each iteration and for randomizing the computation in order to provide a counter measure against differential power analysis.

In a preferred embodiment of the earlier invention, a method for encrypting or encoding and decrypting or decoding a message bit string in an information processing system is provided. The method includes the step of establishing an elliptic curve message point (X_(m)Y_(m)Z_(m)) and embedding a message bit string into the elliptic curve message point. A shared key (k) and a base point (X_(b)Y_(b)Z_(b)) are provided and the scalier multiplication (X_(bk)Y_(bk)Z_(bk))=k (X_(b)Y_(b)Z_(b)) is computed. A cipher point (X_(c)Y_(c)Z_(c)) is then computed using (X_(c)Y_(c)Z_(c))=(X_(m)Y_(m)Z_(m))+k (X_(b)Y_(b)Z_(b)). Appropriate bits of the X-coordinate, X_(c) and the Z-coordinate Z_(c) of the cipher point (X_(c)Y_(c)Z_(c)) are then sent to a receiving party and the shared key k and base point (X_(b)Y_(b)Z_(b)) are used in computing a scaller multiplication (X_(bk)Y_(bk)Z_(bk))=k (X_(b)Y_(b)Z_(b)). Computing the message point (X_(m)Y_(m)Z_(m)) using (X_(m)Y_(m)Z_(m))=(X_(c)Y_(c)Z_(c))+(−k (X_(b)Y_(b)Z_(b))) and recovering the message bit string from X_(m) and Z_(m) completes the method.

The above encryption method includes the step of providing a finite filed serial-serial multiplication/reduction structure wherein an initial delay and clock-cycle are inherently independent of word length and wherein input operands are serially entered one digit at a time and the output result is computed serially one digit at a time.

1. Digit Serial-Serial Finite Field Multiplication—Basic Equation

Least-to-most finite field multiplication of two d-digit numbers can be performed using Montgomery algorithm, which implements the following formula: R=XYμ^(−d) mod*G(μ)   (7) where $\begin{matrix} {X = {\sum\limits_{i = 0}^{d - 1}{x_{i}\mu^{i}}}} & (8) \\ {Y = {\sum\limits_{i = 0}^{d - 1}{y_{i}\mu^{i}}}} & (9) \end{matrix}$ and A mod*M operation generates an output which is redundant to M but is limited to one bit additional to the word length. Rewriting X in terms of digits, the following is obtained: $\begin{matrix} {R = {{\left( {\mu^{- d}{\sum\limits_{i = 0}^{d - 1}{x_{i}Y\quad\mu^{i}}}} \right){mod}^{*}{G(\mu)}} = {\left\lbrack {\mu^{- 1}\left( {\mu^{- {({d - 1})}}{\sum\limits_{i = 0}^{d - 1}{x_{i}Y\quad\mu^{i}}}} \right)} \right\rbrack{mod}^{*}{G(\mu)}}}} & (10) \end{matrix}$

Let's denote R by R_(d). Then, R _(d)=(μ⁻¹ R _(d−1))mod*G(μ)   (11) where $\begin{matrix} \begin{matrix} {R_{d - 1} = {\mu^{- {({d - 1})}}{\sum\limits_{i = 0}^{d - 1}{x_{i}Y\quad\mu^{i}}}}} \\ {= {{x_{d - 1}Y} + {\mu^{- 1}\left( {\mu^{- {({d - 2})}}{\sum\limits_{i = 0}^{d - 2}{x_{i}Y\quad\mu^{i}}}} \right)}}} \\ {= {{x_{d - 1}Y} + {\mu^{- 1}R_{d - 2}}}} \end{matrix} & (12) \end{matrix}$

In general, $\begin{matrix} \begin{matrix} {R_{k} = {\mu^{- {(k)}}{\sum\limits_{i = 0}^{k}{x_{i}Y\quad\mu^{i}}}}} \\ {= {{x_{k}Y} + {\mu^{- 1}\left( {\mu^{- {({k - 1})}}{\sum\limits_{i = 0}^{k - 1}{x_{i}Y\quad\mu^{i}}}} \right)}}} \\ {= {{x_{k}Y} + {\mu^{- 1}R_{k - 1}}}} \end{matrix} & (13) \end{matrix}$

Substituting for R_(k−1), the following is obtained R _(k) =x _(k) Y+μ ⁻¹ R _(k−1) =x _(k) Y+μ ⁻¹(x _(k−1) Y+μ ⁻¹ R _(k−2))   (14)

By repeating the substitution, we get the following R _(k) =x _(k) Y+μ ⁻¹(x _(k−1) Y+μ ⁻¹(x_(k−2) Y+μ ⁻¹( . . . (x _(k−δ) _(R) ₊₁ Y+μ ⁻¹R_(k−5) _(R) ) . . . )))   (15)

Taking out the least-significant digit of R_(k−δ) _(R) , which would be discarded anyway by the division, outside all parentheses, we get R _(k) =x _(k) Y+μ ⁻¹(x _(k−1) Y+μ ⁻¹(x _(k−2) Y+μ ⁻¹( . . . (x _(k−δ) _(R) ₊₁ Y+μ ⁻¹ R _(k−δ) _(R) ) . . . )))+μ^(−δ) ^(R) R _(k−δ) _(R) ^([0])  (16)

Since all operations are performed mod G(μ), any term can be reduced mod G(μ) without disturbing the final result. It follows that R _(k) =x _(k) Y+μ ⁻¹ R _(k−1)+μ^(−δ) ^(R) mod G(μ)·R _(k−δ) _(R) ^([0])  (17)

If θ=μ^(−δ) ^(θ) mod G(μ), then by substituting in the last equation, R _(k) =x _(k) Y+μ ⁻¹ R _(k−1)+μ^(δ) ^(θ) ^(−δ) ^(R) θ·R _(k−δ) _(R) ^([0])  (18)

The introduction of the parameter δ_(R) is useful since it enables pipelining of the multiplication process, as will be described in detail later. It is noteworthy that this is not the only way to calculate the correction term θ. While other ways can be found in the literature, it should be clear that all the following equations are applicable to any method of correction term generation.

Unfolding this recurrence, and solving for R, we get $\begin{matrix} \begin{matrix} {R = {\left\lbrack {\mu^{- d}\left( {{\mu^{- \delta_{R}}{XY}} + {\mu^{\delta_{\theta} - \delta_{R}}\theta{\sum\limits_{k = 0}^{d - 1}{R_{k}^{\lbrack 0\rbrack}\mu^{k}}}}} \right)} \right\rbrack{mod}^{*}{G(\mu)}}} \\ {= {\left\lbrack {\mu^{{- d} - \delta_{R}}\left( {{XY} + {\mu^{\delta_{\theta}}\theta{\sum\limits_{k = 0}^{d - 1}{R_{k}^{\lbrack 0\rbrack}\mu^{k}}}}} \right)} \right\rbrack{mod}^{*}{G(\mu)}}} \end{matrix} & (19) \end{matrix}$

Note that X, Y and θ can be rewritten as $\begin{matrix} {X = {{\sum\limits_{i = 0}^{d - 1}{x_{i}\mu^{i}}} = {\mu^{- \delta_{X}}{\sum\limits_{i = 0}^{d + \delta_{X} - 1}{x_{i - \delta_{X}}\mu^{i}}}}}} & (20) \\ {Y = {{\sum\limits_{j = 0}^{d - 1}{y_{j}\mu^{j}}} = {\mu^{- \delta_{Y}}{\sum\limits_{j = 0}^{d + \delta_{Y} - 1}{y_{j - \delta_{Y}}\mu^{j}}}}}} & (21) \\ {\theta = {{\sum\limits_{h = 0}^{d - 1}{\theta^{\lbrack h\rbrack}\mu^{h}}} = {\mu^{- \delta_{\theta}}{\sum\limits_{h = 0}^{d + \delta_{\theta} - 1}{\theta^{\lbrack{h - \delta_{\theta}}\rbrack}\mu^{h}}}}}} & (22) \end{matrix}$

δ_(θ), δ_(X) and δ_(Y) are introduced to give the freedom for the operands to be supplied with different lag times, and they prove helpful also in the case of multi-precision multiplication. These δ's are governed by the following relationships: δ_(X),δ_(Y)≧0 δ_(R),δ_(θ)≧1 max(δ_(X),δ_(Y))<min(δ_(R),δ_(θ)) δ=max(δ_(R), δ_(θ))

Through rewriting all words as digits, each of the two products can be decomposed in the following way. $\begin{matrix} {R = {\mu^{{- d} - \delta_{R}}{\quad\left( {{\sum\limits_{i = 0}^{d + \delta_{X} - 1}{x_{i - \delta_{X}}\mu^{i - \delta_{X}}{\sum\limits_{j = 0}^{d + \delta_{Y} - 1}{y_{j - \delta_{Y}}\mu^{j - \delta_{Y}}}}}} + {\sum\limits_{h = 0}^{d + \delta_{\theta} - 1}{\theta^{\lbrack{h - \delta_{\theta}}\rbrack}\mu^{h}{\sum\limits_{k = 0}^{d - 1}{R_{k}^{\lbrack 0\rbrack}\mu^{k}}}}}} \right)}}} & (23) \end{matrix}$ which can be generalized to $\begin{matrix} {R = {\mu^{{- d} - \delta_{R}}{\quad\left( {{\sum\limits_{i = 0}^{d + \delta - 1}{x_{i - \delta_{X}}\mu^{i - \delta_{X}}{\sum\limits_{j = 0}^{d + \delta - 1}{y_{j - \delta_{Y}}\mu^{j - \delta_{Y}}}}}} + {\sum\limits_{h = 0}^{d + \delta - 1}{\theta^{\lbrack{h - \delta_{\theta}}\rbrack}\mu^{h}{\sum\limits_{k = 0}^{d - 1}{R_{k}^{\lbrack 0\rbrack}\mu^{k}}}}}} \right)}}} & (24) \end{matrix}$

Equivalently, $\begin{matrix} {R = {\mu^{- 1}{\quad\left( {\mu^{{- d} - \delta_{R} + 1}\left. \quad\begin{pmatrix} {{\sum\limits_{i = 0}^{d + \delta - 1}{x_{i - \delta_{X}}\mu^{i - \delta_{X}}{\sum\limits_{j = 0}^{d + \delta - 1}{y_{j - \delta_{Y}}\mu^{j - \delta_{Y}}}}}} +} \\ {\sum\limits_{h = 0}^{d + \delta - 1}{\theta^{\lbrack{h - \delta_{\theta}}\rbrack}\mu^{h}{\sum\limits_{k = 0}^{d - 1}{R_{k}^{\lbrack 0\rbrack}\mu^{k}}}}} \end{pmatrix} \right)} \right.}}} & (25) \end{matrix}$

Denoting R by R_(d+δ) _(R) *, this becomes R _(d+δ) _(R) *=μ⁻¹ R _(d+δ) _(R) ⁻¹*   (26) where $\begin{matrix} {R_{d + \delta_{R} - 1}^{*} = {\mu^{{- d} - \delta_{R} + 1}\begin{pmatrix} {{\sum\limits_{i = 0}^{d + \delta - 1}{x_{i - \delta_{X}}\mu^{i - \delta_{X}}{\sum\limits_{j = 0}^{d + \delta - 1}{y_{j - \delta_{Y}}\mu^{j - \delta_{Y}}}}}} +} \\ {\sum\limits_{h = 0}^{d + \delta - 1}{\theta^{\lbrack{h - \delta_{\theta}}\rbrack}\mu^{h}{\sum\limits_{k = 0}^{d - 1}{R_{k}^{*_{\lbrack 0\rbrack}}\mu^{k}}}}} \end{pmatrix}}} & (27) \\ {R_{d + \delta_{R} - 1}^{*} = {\mu^{{- d} - \delta_{R} + 1}{\quad\begin{pmatrix} {{x_{d + \delta - \delta_{X} - 1}y_{d + \delta - \delta_{Y} - 1}\mu^{{2{({d + \delta - 1})}} - \delta_{X} - \delta_{Y}}} + {x_{d + \delta - \delta_{X} - 1}\mu^{d + \delta - \delta_{X} - 1}}} \\ {{\sum\limits_{j = 0}^{d + \delta - 2}{y_{j - \delta_{Y}}\mu^{j - \delta_{Y}}}} + {y_{d + \delta - \delta_{Y} - 1}\mu^{d + \delta - \delta_{Y} - 1}{\sum\limits_{i = 0}^{d + \delta - 2}{x_{i - \delta_{X}}\mu^{i - \delta_{X}}}}} +} \\ {{\sum\limits_{i = 0}^{d + \delta - 2}{x_{i - \delta_{X}}\mu^{i - \delta_{X}}{\sum\limits_{j = 0}^{d + \delta - 2}{y_{j - \delta_{Y}}\mu^{j - \delta_{Y}}}}}} + \theta^{\lbrack{d + \delta - \delta_{\theta} - 1}\rbrack}} \\ {{R_{d - 1}^{*_{\lbrack 0\rbrack}}\mu^{{2{({d - 1})}} + \delta - \delta_{\theta}}} + {\theta^{\lbrack{d + \delta - \delta_{\theta} - 1}\rbrack}\mu^{d + \delta - 1}{\sum\limits_{k = 0}^{d - 2}{R_{k}^{*_{\lbrack 0\rbrack}}\mu^{k}}}} + {R_{d - 1}^{*_{\lbrack 0\rbrack}}\mu^{d - 1}}} \\ {{\sum\limits_{h = 0}^{d + \delta - 2}{\theta^{\lbrack{h - \delta_{\theta}}\rbrack}\mu^{h}}} + {\sum\limits_{h = 0}^{d + \delta - 2}{\theta^{\lbrack{h - \delta_{\theta}}\rbrack}\mu^{h}{\sum\limits_{k = 0}^{d - 2}{R_{k}^{*_{\lbrack 0\rbrack}}\mu^{k}}}}}} \end{pmatrix}}}} & (28) \\ {R_{d + \delta_{R} - 1}^{*} = {{x_{d + \delta - \delta_{X} - 1}y_{d + \delta - \delta_{Y} - 1}\mu^{d + {2\delta} - \delta_{X} - \delta_{Y} - \delta_{R} - 1}} + {x_{d + \delta - \delta_{X} - 1}\mu^{\delta - \delta_{X} - \delta_{R}}{\sum\limits_{j = 0}^{d + \delta - 2}{y_{j - \delta_{Y}}\mu^{j - \delta_{Y}}}}} + {y_{d + \delta - \delta_{Y} - 1}\mu^{\delta - \delta_{Y} - \delta_{R}}{\sum\limits_{i = 0}^{d + \delta - 2}{x_{i - \delta_{X}}\mu^{i - \delta_{X}}}}} + {\theta^{\lbrack{d + \delta - \delta_{\theta} - 1}\rbrack}R_{d - 1}^{*_{\lbrack 0\rbrack}}\mu^{d - 1 + \delta - \delta_{\theta} - \delta_{R}}} + {\theta^{\lbrack{d + \delta - \delta_{\theta} - 1}\rbrack}\mu^{\delta - \delta_{R}}{\sum\limits_{k = 0}^{d - 2}{R_{k}^{*_{\lbrack 0\rbrack}}\mu^{k}}}} + {R_{d - 1}^{*_{\lbrack 0\rbrack}}\mu^{- \delta_{R}}{\sum\limits_{h = 0}^{d + \delta - 2}{\theta^{\lbrack{h - \delta_{\theta}}\rbrack}\mu^{h}}}} + {\mu^{- 1}\left( {\mu^{{- d} - \delta_{R} + 2}\left( {{\sum\limits_{i = 0}^{d + \delta - 2}{x_{i - \delta_{X}}\mu^{i - \delta_{X}}{\sum\limits_{j = 0}^{d + \delta - 2}{y_{j - \delta_{Y}}\mu^{j - \delta_{Y}}}}}} + {\sum\limits_{h = 0}^{d + \delta - 2}{\theta^{\lbrack{h - \delta_{\theta}}\rbrack}\mu^{h}{\sum\limits_{k = 0}^{d - 2}{R_{k}^{*_{\lbrack 0\rbrack}}\mu^{k}}}}}} \right)} \right)}}} & (29) \\ {R_{d + \delta_{R} - 1}^{*} = {{x_{d + \delta - \delta_{X} - 1}y_{d + \delta - \delta_{Y} - 1}\mu^{d + {2\delta} - \delta_{X} - \delta_{Y} - \delta_{R} - 1}} + {x_{d + \delta - \delta_{X} - 1}\mu^{\delta - \delta_{X} - \delta_{R}}{\sum\limits_{j = 0}^{d + \delta - 2}{y_{j - \delta_{Y}}\mu^{j - \delta_{Y}}}}} + {y_{d + \delta - \delta_{Y} - 1}\mu^{\delta - \delta_{Y} - \delta_{R}}{\sum\limits_{i = 0}^{d + \delta - 2}{x_{i - \delta_{X}}\mu^{i - \delta_{X}}}}} + {\theta^{\lbrack{d + \delta - \delta_{\theta} - 1}\rbrack}R_{d - 1}^{*_{\lbrack 0\rbrack}}\mu^{d - 1 + \delta - \delta_{\theta} - \delta_{R}}} + {\theta^{\lbrack{d + \delta - \delta_{\theta} - 1}\rbrack}\mu^{\delta - \delta_{R}}{\sum\limits_{k = 0}^{d - 2}{R_{k}^{*_{\lbrack 0\rbrack}}\mu^{k}}}} + {R_{d - 1}^{*_{\lbrack 0\rbrack}}\mu^{- \delta_{R}}{\sum\limits_{h = 0}^{d + \delta - 2}{\theta^{\lbrack{h - \delta_{\theta}}\rbrack}\mu^{h}}}} + {\mu^{- 1}R_{d + \delta_{R} - 2}^{*}}}} & (30) \end{matrix}$

In general, $\begin{matrix} {R_{g}^{*} = {{{x_{g + \delta - \delta_{R} - \delta_{X}}y_{g + \delta - \delta_{R} - \delta_{Y}}\mu^{g + {2\delta} - \delta_{X} - \delta_{Y} - {2\delta_{R}}}} + {x_{g + \delta - \delta_{R} - \delta_{X}}\mu^{\delta - \delta_{X} - \delta_{R}}{\sum\limits_{j = 0}^{g + \delta - \delta_{R} - 1}{y_{j - \delta_{Y}}\mu^{j - \delta_{Y}}}}} + {y_{g + \delta - \delta_{R} - \delta_{Y}}\mu^{\delta - \delta_{Y} - \delta_{R}}{\sum\limits_{i = 0}^{g + \delta - \delta_{R} - 1}{x_{i - \delta_{X}}\mu^{i - \delta_{X}}}}} + {\theta^{\lbrack{g + \delta - \delta_{R} - \delta_{\theta}}\rbrack}R_{g - \delta_{R}}^{*_{\lbrack 0\rbrack}}\mu^{g + \delta - \delta_{\theta} - {2\delta_{R}}}} + {\theta^{\lbrack{g + \delta - \delta_{R} - \delta_{\theta}}\rbrack}\mu^{\delta - \delta_{R}}{\sum\limits_{k = 0}^{g - \delta_{R} - 1}{R_{k}^{*_{\lbrack 0\rbrack}}\mu^{k}}}} + {R_{g - \delta_{R}}^{*_{\lbrack 0\rbrack}}\mu^{- \delta_{R}}{\sum\limits_{h = 0}^{g + \delta - \delta_{R} - 1}{\theta^{\lbrack{h - \delta_{\theta}}\rbrack}\mu^{h}}}} + {\mu^{- 1}R_{g - 1}^{*}\quad{for}\quad 0}} \leq g \leq {d + \delta}}} & (31) \end{matrix}$

This recurrence describes in general the finite field multiplication operation in which all operands are fed serially and the output is also obtained serially.

Equation (31) is a novel description of the multiplication operation. It formulates the two stages of the field multiplication, namely (i) the operand multiplication and (ii) the finite field reduction, as a serial-serial computation.

2. A Particular Implementation of a Serial-Serial GF(p) Multiplier

One embodiment of equation 31 is shown in this section for GF(p). This architecture is not the only possible implementation of equation 31. It is used to illustrate how it can be implemented in a serial-serial fashion.

As previously mentioned, in GF(p), G(μ) will denote the modulus M while μ will denote the radix 2^(r). Setting δ_(X)=δ_(Y)=0, δ_(θ)=δ_(R)=1 and noting that the product of any two digits consists of two digits, i.e. a _(i) b _(j) =[a _(i) b _(j)]_(H)2^(r) +[a _(i) b _(j)]_(L)   (32)

Equation (31) can be rewritten in GF(p) as follows. $\begin{matrix} {R_{g}^{*} = {{\left( {{\left\lbrack {x_{g}y_{g}} \right\rbrack_{H}2^{r}} + \left\lbrack {x_{g}y_{g}} \right\rbrack_{L}} \right)2^{gr}} + {\sum\limits_{j = 0}^{g - 1}{\left( {{\left\lbrack {x_{g}y_{j}} \right\rbrack_{H}2^{r}} + \left\lbrack {x_{g}y_{j}} \right\rbrack_{L}} \right)2^{jr}}} + {\sum\limits_{i = 0}^{g - 1}{\left( {{\left\lbrack {x_{i}y_{g}} \right\rbrack_{H}2^{r}} + \left\lbrack {x_{i}y_{g}} \right\rbrack_{L}} \right)2^{jr}}} + {\left( {{\left\lbrack {R_{g - 1}^{*_{\lbrack 0\rbrack}}\theta^{\lbrack{g - 1}\rbrack}} \right\rbrack_{H}2^{r}} + \left\lbrack {R_{g - 1}^{*_{\lbrack 0\rbrack}}\theta^{\lbrack{g - 1}\rbrack}} \right\rbrack_{L}} \right)2^{{({g - 1})}r}} + {\sum\limits_{k = 0}^{g - 2}{\left( {{\left\lbrack {R_{k}^{*_{\lbrack 0\rbrack}}\theta^{\lbrack{g - 1}\rbrack}} \right\rbrack_{H}2^{r}} + \left\lbrack {R_{k}^{*_{\lbrack 0\rbrack}}\theta^{\lbrack{g - 1}\rbrack}} \right\rbrack_{L}} \right)2^{kr}}} + {\sum\limits_{h = 0}^{g - 2}{\left( {{\left\lbrack {R_{g - 1}^{*_{\lbrack 0\rbrack}}\theta^{\lbrack h\rbrack}} \right\rbrack_{H}2^{r}} + \left\lbrack {R_{g - 1}^{*_{\lbrack 0\rbrack}}\theta^{\lbrack h\rbrack}} \right\rbrack_{L}} \right)2^{hr}}} + {2^{- r}R_{g - 1}^{*}}}} & (33) \end{matrix}$

The maximum significance in R_(g)* is 2^((g+1)r) (except when g=d, where the maximum significance will be 2^(gr)). Hence, R_(g)* will have (g+2) digits at most of which the higher will be always limited to 1-bit, i.e. its value will be at most 1. Moreover, R_(d)* (the final result) will be only one bit longer than the word length, which is a common feature in the output of least-to-most finite field multiplication algorithms. Then, equation (33) can be rewritten as $\begin{matrix} {{\sum\limits_{l = 0}^{g + 1}{R_{g}^{*_{\lbrack l\rbrack}}2^{lr}}} = {{\left( {{\left\lbrack {x_{g}y_{g}} \right\rbrack_{H}2^{r}} + \left\lbrack {x_{g}y_{g}} \right\rbrack_{L}} \right)2^{gr}} + {\sum\limits_{j = 0}^{g - 1}{\left( {{\left\lbrack {x_{g}y_{j}} \right\rbrack_{H}2^{r}} + \left\lbrack {x_{g}y_{j}} \right\rbrack_{L}} \right)2^{jr}}} + {\sum\limits_{i = 0}^{g - 1}{\left( {{\left\lbrack {x_{i}y_{g}} \right\rbrack_{H}2^{r}} + \left\lbrack {x_{i}y_{g}} \right\rbrack_{L}} \right)2^{ir}}} + {\left( {{\left\lbrack {R_{g - 1}^{*_{\lbrack 0\rbrack}}\theta^{\lbrack{g - 1}\rbrack}} \right\rbrack_{H}2^{r}} + \left\lbrack {R_{g - 1}^{*_{\lbrack 0\rbrack}}\theta^{\lbrack{g - 1}\rbrack}} \right\rbrack_{L}} \right)2^{{({g - 1})}r}} + {\sum\limits_{k = 0}^{g - 2}{\left( {{\left\lbrack {R_{k}^{*_{\lbrack 0\rbrack}}\theta^{\lbrack{g - 1}\rbrack}} \right\rbrack_{H}2^{r}} + \left\lbrack {R_{k}^{*_{\lbrack 0\rbrack}}\theta^{\lbrack{g - 1}\rbrack}} \right\rbrack_{L}} \right)2^{kr}}} + {\sum\limits_{h = 0}^{g - 2}{\left( {{\left\lbrack {R_{g - 1}^{*_{\lbrack 0\rbrack}}\theta^{\lbrack h\rbrack}} \right\rbrack_{H}2^{r}} + \left\lbrack {R_{g - 1}^{*_{\lbrack 0\rbrack}}\theta^{\lbrack h\rbrack}} \right\rbrack_{L}} \right)2^{hr}}} + {2^{- r}R_{g - 1}^{*}}}} & (34) \end{matrix}$

Using equation (34), a basic serial-serial finite field multiplier can be built. The block diagram of that multiplier, in which each cell works with a single significance at any given cycle, is shown in FIG. 2.

Each cell has five inputs and one output. Four of the five inputs are the broadcast lines while the fifth is the sum digit of the next higher cell. Meanwhile, each cell stores its carry digit and the higher digits of the products to be used in the next iteration. The function of each cell can be directly obtained by manipulating equation (34). Based on the assumption that cell s will store the values of x_(s), y_(s), θ^([s]) and R_(s)*^([0]), it is clear that at the i^(th) cycle, only the first i^(th) cells will be operational. Based on equation (34), cell s has one of five operation modes based on the iteration index g:

1. If s>g, then cell s would be idle.

2. If s=g, then cell s would accumulate the term of significance 2^(gr) in equation (34), which is [x_(g)y_(g)]_(L), meaning the function of the cell can be defined as: [R _(g)*^([s])]_(carry)2^(r) +[R _(g)*^([s])]_(sum) =[x _(g) y _(g)]_(L)   (35)

In addition, it will store x_(g) and y_(g) as its x_(s) and y_(s), respectively.

3. If s=g−1, then the cell s would calculate the terms of significance 2^(g−)1 in equation (34). [R _(g)*^([s])]_(carry)2^(r) +[R _(g)*^([s])]_(sum) =[x _(s) y _(g)]_(L) +[x _(g) y _(s)]_(L) +[R _(g−1)*^([0])θ^([g−1])]_(L) +[x _(g−1) y _(g−1)]_(H)   (36)

In addition, it will store R_(g−1)*^([0]) and θ^([g−1]) as its R_(s)*^([0]) and θ^([s]), respectively.

4. If s=g−2, then the cell s would calculate the terms of significance 2^(g−2). $\begin{matrix} {{{\left\lbrack R_{g}^{*{\lbrack s\rbrack}} \right\rbrack_{carry}2^{r}} + \left\lbrack R_{g}^{*{\lbrack s\rbrack}} \right\rbrack_{sum}} = {\left\lbrack {x_{s}y_{g}} \right\rbrack_{L} + \left\lbrack {x_{g}y_{s}} \right\rbrack_{L} + \left\lbrack {R_{s}^{*{\lbrack 0\rbrack}}\theta^{\lbrack{g - 1}\rbrack}} \right\rbrack_{L} + \left\lbrack {R_{g - 1}^{*{\lbrack 0\rbrack}}\theta^{\lbrack s\rbrack}} \right\rbrack_{L} + \quad\left\lbrack {x_{s}y_{g - 1}} \right\rbrack_{H} + \left\lbrack {x_{g - q}y_{s}} \right\rbrack_{H} + {\left\lbrack {R_{g - 2}^{*{\lbrack 0\rbrack}}\theta^{\lbrack{g - 2}\rbrack}} \right\rbrack_{H}\left\lbrack R_{g - 1}^{\&{\lbrack s\rbrack}} \right\rbrack}_{carry} + \left\lbrack R_{g - 1}^{*{\lbrack{s + 1}\rbrack}} \right\rbrack_{sum}}} & (37) \end{matrix}$

5. If s<g−2, then the cell s would calculate the terms of significance 2^(s). {in general} $\begin{matrix} {{{\left\lbrack R_{g}^{*_{\lbrack s\rbrack}} \right\rbrack_{carry}2^{r}} + \left\lbrack R_{g}^{*_{\lbrack s\rbrack}} \right\rbrack_{sum}} = {\left\lbrack {x_{s}y_{g}} \right\rbrack_{L} + \left\lbrack {x_{g}y_{s}} \right\rbrack_{L} + \left\lbrack {R_{s}^{*_{\lbrack 0\rbrack}}\theta^{\lbrack{g - 1}\rbrack}} \right\rbrack_{L} + \left\lbrack {R_{g - 1}^{*_{\lbrack 0\rbrack}}\theta^{\lbrack s\rbrack}} \right\rbrack_{L} + \left\lbrack {x_{s}y_{g - 1}} \right\rbrack_{H} + \left\lbrack {x_{g - 1}y_{s}} \right\rbrack_{H} + \left\lbrack {R_{s}^{*_{\lbrack 0\rbrack}}\theta^{\lbrack{g - 2}\rbrack}} \right\rbrack_{H} + \left\lbrack {R_{g - 2}^{*_{\lbrack 0\rbrack}}\theta^{\lbrack s\rbrack}} \right\rbrack_{H} + \left\lbrack R_{g - 1}^{*_{\lbrack s\rbrack}} \right\rbrack_{carry} + \left\lbrack R_{g - 1}^{*_{\lbrack{s + 1}\rbrack}} \right\rbrack_{sum}}} & (38) \end{matrix}$

FIG. 3 shows the general structure for the finite field multiplier cell.

As can be seen only serial communications of the input and output operands are used. Also, it is clear that the first digit of the partial products is obtained after only one cycle.

3. Serial-Serial Finite Field Reduction

The same derivation illustrated above can be used to develop a serial-serial finite field reduction structure, i.e. a structure that reduces a given 2d-digits quantity with respect to a given finite field. In such case, the only inputs to the structure would be the quantity to be reduced, the reduction term and feedback digits of the result, as shown in the following formula. Moreover, the cell used will be the same except of the part that handles the digits of X and Y, which is no longer required. This reduces the cell by two multipliers, two registers and a multiplexer.

4. An Improved Implementation Using d/2 Cells

One possible enhancement of the structure is described here based on the transformation of time-space mappings. This is effectively another embodiment of equation (31).

The serial-serial finite field multiplier described above used d cells to multiply two d-digit numbers. The number of required cells can be reduced to d/2 without changing the internal design of the cell. This can be achieved for normal integer multiplication by exploiting the fact that the cells d/2, d/2+1, . . . up to d−1 are idle half of the cycles.

In this invention, we show that the same feature exists for field multiplication. As an example, Table 1 shows the multiplication of two 4-digit numbers. As can be seen, when the field multiplication is formulated as a serial-serial computation as in equation (31), again half the cells remain idle for half of the cycles. TABLE 1 The Result Accumulation in A Serial-Serial Finite field Multiplier (d cells) Cycle Result Cell 0 Cell 1 Cell 2 Cell 3 0 R₀*^([0]) x₀y₀ 1 R₁*^([0]) x₀y₁ + x₁y₀ + x₁y₁ R₀*^([0])θ^([0]) 2 R₂*^([0]) x₀y₂ + x₂y₀ + x₁y₂ + x₂y₁ + R₁*^([0])θ^([1]) x₂y₂ R₀*^([0])θ^([1]) + R₁*^([0])θ^([0]) 3 R₃*^([0]) x₀y₃ + x₃y₀ + x₁y₂ + x₂y₁ + x₂y₃ + x₃y₂ + R₂*^([0])θ^([2]) x₃y₃ R₀*^([0])θ^([2]) + R₂*^([0])θ^([0]) R₁*^([0])θ^([2]) + R₂*^([0])θ^([1]) 4 R₄*^([0]) R₀*^([0])θ^([3]) + R₃*^([0])θ^([0]) R₁*^([0])θ^([3]) + R₃*^([0])θ^([1]) R₂*^([0])θ^([3]) + R₃*^([0])θ^([2]) R₃*^([0])θ^([3]) 5 R₄*^([1])

6 R₄*^([2])

7 R₄*^([3])

8 R₄*^([4])

Combining this fact with the fact that the multipliers of the lower d/2 cells are idle in the last d cycles, it can be seen that the higher d/2 cells are basically redundant. Table 2 shows how the same computation would look like on 2 cells only. TABLE 2 The Result Accumulation in A Serial-Serial Finite field Multiplier (d/2 cells) Cycle Result Cell 0 Cell 1 0 R₀*^([0]) x₀y₀ 1 R₁*^([0]) x₀y₁ + x₁y₀ + R₀*^([0])θ^([0]) x₁y₁ 2 R₂*^([0]) x₀y₂ + x₂y₀ + R₀*^([0])θ^([1]) + x₁y₂ + x₂y₁ + R₁*^([0])θ^([0]) R₁*^([0])θ^([1]) 3 R₃*^([0]) x₀y₃ + x₃y₀ + R₀*^([0])θ^([2]) + x₁y₂ + x₂y₁ + R₂*^([0])θ^([0]) R₁*^([0])θ^([2]) + R₂*^([0])θ^([1]) 4 R₄*^([0]) x₂y₂ + R₀*^([0])θ^([3]) + R₃*^([0])θ^([0]) R₁*^([0])θ^([3]) + R₃*^([0])θ^([1]) 5 R₄*^([1]) x₂y₃ + x₃y₂ + R₂*^([0])θ^([2]) x₃y₃ 6 R₄*^([2]) R₂*^([0])θ^([3]) + R₃*^([0])θ^([2]) R₃*^([0])θ^([3]) 7 R₄*^([3])

8 R₄*^([4])

Nonetheless, such configuration requires the higher halves of X, Y, θ and half of the truncated resulting bits to be supplied twice, which can be easily achieved by buffering them for d/2 cycles. This change needs to be done in order to reduce the multiplier area by ˜50% as shown in FIG. 4.

5. Increasing the Utilization through Operation Multiplexing

In the previous section, the concept of utilizing idle cells by relocating the operations was introduced to enhance the area efficiency of the multiplier by reducing the number of required cells by 50%. The same concept can be generalized for higher gain in terms of area and time.

As can be noted by comparing the operations in Tables 1 and 2, the digits in the second half of the operand words are relocated to reduce the number of cells. This involves supplying these digits twice, which is achieved by using a d/2 shift register. The same concept can be applied to the second half, i.e. splitting it into two halves and supplying the last half twice. Although this will not reduce the number of required cells, it will result in a better utilization of the multiplier cells, as shown in Table 3. TABLE 3 The Result Accumulation in a Serial-Serial Modular Multiplier after (d/2 cells) Cycle Result Cell 0 Cell 1 0 R₀*^([0]) x₀y₀ 1 R₁*^([0]) x₀y₁ + x₁y₀ + R₀*^([0])θ^([0]) x₁y₁ 2 R₂*^([0]) x₀y₂ + x₂y₀ + R₀*^([0])θ^([1]) + x₁y₂ + x₂y₁ + R₁*^([0])θ^([0]) R₁*^([0])θ^([1]) 3 R₃*^([0]) x₀y₃ + x₃y₀ + R₀*^([0])θ^([2]) + x₁y₃ + x₃y₁ + R₂*^([0])θ^([0]) R₁*^([0])θ^([2]) + R₂*^([0])θ^([1]) 4 R₄*^([0]) x₂y₂ + R₀*^([0])θ^([3]) + R₃*^([0])θ^([0]) R₁*^([0])θ^([3]) + R₃*^([0])θ^([1]) 5 R₄*^([1]) x₂y₃ + x₃y₂ + R₂*^([0])θ^([2])

6 R₄*^([2]) x₃y₃ + R₂*^([0])θ^([3]) + R₃*^([0])θ^([2]) 7 R₄*^([3]) R₃*^([0])θ^([3]) 8 R₄*^([4])

This can be repetitively applied until the last relocated half becomes only one digit. This requires some digits to be supplied more than once. This can be achieved by using a set of shift registers of different lengths at the inputs. Clearly, the maximum total size of these shift registers is d−1. Another way is to have some feedback connections on the d/2 shift register. Both solutions are shown in FIG. 5.

The idle cells that resulted from relocation are useful when multiplexing more than one operation on the same multiplier. This can be achieved by feeding the operands of the next operation from the other side to utilize the idle cells. Table 4 shows an example of multiplexing operations on a serial-serial multiplier.

There is a trade-off between the number of cells required to perform the multiplexing of operations and the level of multiplexing achieved. On one extreme, if the number of cells of the original multiplier is doubled, a fully concurrent operation can be achieved since the multiplier will perform like two separate multipliers with no cells in common. On the other extreme, if no cells are added, all cells will be common to both multipliers and the multiplexing will be minimal. Table 4 shows a compromise between the two extremes in which d/4 cells are added, i.e. the total number of cells becomes 3d/4. This results in d/4 cells overlapping and ˜1.5 gain in the throughput. TABLE 4 Multiplexing three multiplication operations on a serial-serial multiplier (3d/4 cells) Cycle Result Cell 0 (mul1) Cell 1 (common) Cell 0 (mul2) Result Cycle 0 R₀*^([0]) x₀y₀ 1 R₁*^([0]) x₀y₁ + x₁y₀ + x₁y₁ R₀*^([0])θ^([0]) 2 R₂*^([0]) x₀y₂ + x₂y₀ + x₁y₂ + x₂y₁ + R₀*^([0])θ^([1]) + R₁*^([0])θ^([0]) R₁*^([0])θ^([1]) 3 R₃*^([0]) x₀y₃ + x₃y₀ + x₁y₃ + x₃y₁ + R₀*^([0])θ^([2]) + R₂*^([0])θ^([0]) R₁*^([0])θ^([2]) + R₂*^([0])θ^([1]) 4 R₄*^([0]) x₂y₂ + R₀*^([0])θ^([3]) + R₃*^([0])θ^([0]) R₁*^([0])θ^([3]) + R₃*^([0])θ^([1]) 5 R₄*^([1]) x₂y₃ + x₃y₂ + R₂*^([0])θ^([2])

x₀y₀ R₀*^([0]) 0 6 R₄*^([2]) x₃y₃ + R₂*^([0])θ^([3]) + R₃*^([0])θ^([2]) x₁y₁ x₀y₁ + x₁y₀ + R₁*^([0]) 1 R₀*^([0])θ^([0]) 7 R₄*^([3]) R₃*^([0])θ^([3]) x₁y₂ + x₂y₁ + x₀y₂ + x₂y₀ + R₂*^([0]) 2 R₁*^([0])θ^([1]) R₀*^([0])θ^([1]) + R₁*^([0])θ^([0]) 8 R₄*^([4])

x₁y₃ + x₃y₁ + x₀y₃ + x₃y₀ + R₃*^([0]) 3 R₁*^([0])θ^([2]) + R₂*^([0])θ^([1]) R₀*^([0])θ^([2]) + R₂*^([0])θ^([0]) R₁*^([0])θ^([3]) + R₃*^([0])θ^([1]) x₂y₂ + R₀*^([0])θ^([3]) + R₃*^([0])θ^([0]) R₄*^([0]) 4 0 R₀*^([0]) x₀y₀

x₂y₃ + x₃y₂ + R₄*^([1]) 5 R₂*^([0])θ^([2]) 1 R₁*^([0]) x₀y₁ + x₁y₀ + x₁y₁ x₃y₃ + R₄*^([2]) 6 R₀*^([0])θ^([0]) R₂*^([0])θ^([3]) + R₃*^([0])θ^([2]) 2 R₂*^([0]) x₀y₂ + x₂y₀ + x₁y₂ + x₂y₁ + R₃*^([0])θ^([3]) R₄*^([3]) 7 R₀*^([0])θ^([1]) + R₁*^([0])θ^([0]) R₁*^([0])θ^([1]) 3 R₃*^([0]) x₀y₃ + x₃y₀ + x₁y₃ + x₃y₁ +

R₄*^([4]) 8 R₀*^([0])θ^([2]) + R₂*^([0])θ^([0]) R₁*^([0])θ^([2]) + R₂*^([0])θ^([1]) 4 R₄*^([0]) x₂y₂ + R₀*^([0])θ^([3]) + R₃*^([0])θ^([0]) R₁*^([0])θ^([3]) + R₃*^([0])θ^([1]) 5 R₄*^([1]) x₂y₃ + x₃y₂ +

R₂*^([0])θ^([2]) 6 R₄*^([2]) x₃y₃ + R₂*^([0])θ^([3]) + R₃*^([0])θ^([2]) 7 R₄*^([3]) R₃*^([0])θ^([3]) 8 R₄*^([4])

6. A Systolic Implementation of GF(p) Multiplier

One possible improvement and another embodiment for equation (31), is given in this section based on the application of the techniques of systolic arrays.

It is possible to make the design systolic by transforming each other delay to the broadcast lines. Then, each cell of the systolic array will encapsulate two multiplier cells. The adders of these two cells can be combined for more efficient operation. FIGS. 6 and 7 show the resulting structure and cell, respectively.

7. A Pipelined Implementation of GF(p) Multiplier

Another possible improvement of the structure is discussed in this section to increase the clock frequency through pipelining. Again, this is another embodiment which is based on equation (31).

The existence of the parameter δ_(R) in equation (31) indicates the possibility of delaying the correction for a number of cycles, which can help in pipelining the multiplier. When δ_(R)=1, the maximum possible number of stages without breaking the dependency would be 2. By increasing the value of δ_(R), the dependency is relaxed since R_(g)* needs only the correction of R_(g−δ) _(R) *. Hence, the number of possible pipeline stages will increase. FIG. 8 illustrates this for δ_(R)=4.

While pipelining the multiplier cell, the pipelining stages can be applied to either digit multipliers or the first two digit adders of the cell architecture. Pipelining can also be used to multiplex several multiplication operations on the same multiplier at the same time.

8. A Design Trade-Off Between the Number of Digit Multipliers and the Multiplication Time

In this section, a variety of cell architectures are discussed which give different trade-offs between time and area (and hence power consumption). These obviously result in different embodiments which are based on equation (31).

There exists a design trade-off between the number of digit multipliers needed in each cell and the number of cycles needed to perform multiplication. Since the computation in each consists of four digit multiplications, the following relationship holds between the number of digit multipliers, D, that are available in each cell, and the number of cycles, c, needed to compute the four digit multipliers: Dc=4   (39)

In addition to the difference in performance, different implementations have different hardware and power requirements. In particular, the less the number of digit multipliers used inside each cell, the less the needed bus width. For example, if only one digit multiplier is used, then only one digit-wide bus line will be enough to transfer all the required operands.

9. Multiplier Cell Realization

The digit multipliers and digit adders used in the cells of the structures described in the previous sections can be realized using any of the available technologies and algorithms to reduce time, hardware or power dissipation. This includes, but is not limited to, carry-save arithmetic, signed-digit arithmetic in addition to redundant arithmetic in general.

Each cell realization would effectively lead to a different embodiment of equation (31).

10. Scalable Finite Field Multipliers—Basic Equation

In this section, it is shown that all the structures based on equation (31) are scalable.

Noting that θ^([−1])=R⁻¹ ^([0])=0, the summations in equation (24) can be partitioned into blocks as follows $\begin{matrix} \begin{matrix} {R = {\mu^{{- d} - \delta_{R}}\left( {{\sum\limits_{i = 0}^{d + \delta - 1}{x_{i - \delta_{X}}\mu^{i - \delta_{X}}{\sum\limits_{j = 0}^{d + \delta - 1}{y_{j - \delta_{Y}}\mu^{j - \delta_{Y}}}}}} +} \right.}} \\ \left. {\sum\limits_{h = 0}^{d + \delta - 1}{\theta^{\lbrack{h - \delta_{\theta}}\rbrack}\mu^{h}{\sum\limits_{k = 0}^{d - 1}{R_{k}^{\lbrack 0\rbrack}\mu^{k}}}}} \right) \\ {= {\mu^{{- d} - \delta_{R}}{\sum\limits_{\phi = 0}^{\frac{d + \delta}{ɛ} - 1}{\sum\limits_{\tau = 0}^{\frac{d + \delta}{ɛ} - 1}{\mu^{{({\phi + \tau})}ɛ}\left( {\sum\limits_{i = 0}^{ɛ - 1}{x_{i - \delta_{X} + {\phi ɛ}}{\mu^{i - \delta_{X}} \cdot}}} \right.}}}}} \\ \left. {{\sum\limits_{j = 0}^{ɛ - 1}{y_{j - \delta_{Y} + {\tau ɛ}}\mu^{j - \delta_{Y}}}} + {\sum\limits_{h = 0}^{ɛ - 1}{\theta^{\lbrack{h - \delta_{\theta} + {\phi ɛ}}\rbrack}{\mu^{h} \cdot {\sum\limits_{k = {- \delta}}^{ɛ - \delta - 1}{R_{k + {\tau ɛ}}^{\lbrack 0\rbrack}\mu^{k}}}}}}} \right) \end{matrix} & (40) \end{matrix}$ where ε represent the block size, while φ and τ are the indices to identify each multiplication block. The expression between parentheses in equation (40) is in fact the same as the expression in equations (23), which describes the whole multiplication operation. The summations signified by the outer summation's can be implemented in any way so long as the significance is taken into consideration. One possible implementation to implement the block in a serial-serial fashion, and the equation would look like: $\begin{matrix} {R = {\mu^{{- d} - \delta_{R}}{\sum\limits_{\phi = 0}^{\frac{d + \delta}{ɛ} - 1}{\sum\limits_{\tau = 0}^{\frac{d + \delta}{ɛ} - 1}{\mu^{{({\phi + \tau})}ɛ}\left( R_{ɛ - 1}^{({\phi,\tau})} \right)}}}}} & (41) \end{matrix}$ where $\begin{matrix} {R_{g}^{({\phi,\tau})} = {{{x_{g - \delta_{X} + {\phi ɛ}}y_{g - \delta_{Y} + {\tau ɛ}}\mu^{{2g} - \delta_{X} - \delta_{Y}}} + {x_{g - \delta_{X} + {\phi ɛ}}\mu^{g - \delta_{X}}{\sum\limits_{j = 0}^{g - 1}{y_{j - \delta_{Y} + {\tau ɛ}}\mu^{j - \delta_{Y}}}}} + {y_{g - \delta_{Y} + {\tau ɛ}}\mu^{g - \delta_{Y}}{\sum\limits_{i = 0}^{g - 1}{x_{i - \delta_{X} + {\phi ɛ}}\mu^{i - \delta_{X}}}}} + {\theta^{\lbrack{g - \delta_{\theta} + {\phi ɛ}}\rbrack}R_{g - \delta + {\tau ɛ}}^{\lbrack 0\rbrack}\mu^{{2g} - \delta}} + {\theta^{\lbrack{g - \delta_{\theta} + {\phi ɛ}}\rbrack}\mu^{g}{\sum\limits_{k = {- \delta}}^{g - 1 - \delta}{R_{k + {\tau ɛ}}^{\lbrack 0\rbrack}\mu^{k}}}} + {R_{g - \delta + {\tau ɛ}}^{\lbrack 0\rbrack}\mu^{g - \delta}{\sum\limits_{h = 0}^{g - 1}{\theta^{\lbrack{h - \delta_{\theta} + {\phi ɛ}}\rbrack}\mu^{h}}}} + {\mu^{- 1}R_{g - 1}^{({\phi,\tau})}\quad{for}\quad 0}} \leq g \leq {ɛ - 1}}} & (42) \end{matrix}$

It should be noted that implementing the outer summations as a serial-serial accumulation is also novel. Equations (41) and (42) imply that the whole multiplication process can be defined as a set of multiplications of sub-words.

It should also be noted that while implementing a scalable finite field multiplier, it is possible to map the blocks to one or more block multipliers. The blocks can be evaluated and accumulated in any order provided that the accumulation mechanism takes care of the respective significance of the blocks. Also, the internal structure of each block multiplier is flexible itself, i.e. any multiplication algorithm can be used to implement the block multiplier, including serial-serial multiplication as already illustrated.

11. An Implementation of a Scalable Finite Field Multiplier

As an embodiment of equations (41) and (42), a scalable finite field multiplier consists of the following components: a memory, a serial-serial finite field multiplier and a digit-serial adder, as shown in FIG. 9. Operands, which can be of any size regardless of the multiplier size, are stored in the memory. To perform the field multiplication operation, operands are divided into sub-words that match the multiplier size. These sub-words are multiplied independently according to equation (42). Then, the results of these multiplications are accumulated according to equation (41) using the digit-serial adder. Furthermore, since a serial-serial multiplier and a digit-serial adder are used, data is transferred between all components one digit at a time. Hence, all buses are only one-digit wide.

This structure is particularly useful for situations where area is scarce, like on a smart card. For further reduction in area, and in order to support arbitrary precision requirements, the accumulation of partial result can be implemented in software.

12. Realizations of a GF(p^(m)) Serial-Serial Multiplier

As indicated in section C-1, equation (31) is also applicable to GF(p^(m)).

A GF(p^(m)) serial-serial multiplier can be obtained using equation (31) by applying the same steps as done for GF(p). In fact, the cells of such multiplier will have the same structure as the abovementioned cells. The only difference will be in the arithmetic elements used in building the cell. In the case of GF(p^(m)), all the arithmetic elements, i.e. digit multipliers and adders should be operating modulo-p. It is worth noting in this case that there are no carries from significance to the next due to module p operation, and hence the cell should be modified accordingly.

Moreover, any resultant serial-serial GF(p^(m)) multiplier can be made systolic, pipelined and made scalable by the same methodology applied above for GF(p) multiplication.

13. Universal Architecture for Finite Field Multipliers

The multiplication architecture is the same for all fields as can be deduced from the above sections. The architecture of the basic cell is also the same for all fields. The difference is in the functionality of the basic arithmetic elements in the cell. By designing arithmetic elements that can support the arithmetic operations of different fields, a universal cell, and hence a universal multiplier, can be built.

14. A Most-to-Least Serial-Serial GF(p^(m)) Multiplier

Another embodiment of the invention is given in this section based on most-to-least significant digit computation.

Most-to-least Multiplication can be achieved by correcting for the most-significant digit of the partial sum, rather than the least-significant one. The left of the operation is in essence very similar to the least-to-most finite field multiplication, as illustrated in equation (43). $\begin{matrix} {R = \begin{pmatrix} {{\sum\limits_{i = 0}^{d + \delta - 1}{x_{d + \delta_{X} - i - 1}\mu^{d + \delta_{X} - i - 1}{\sum\limits_{j = 0}^{d + \delta - 1}y_{d + \delta_{Y} - j - 1}}}} +} \\ {\sum\limits_{h = 0}^{d + \delta - 1}{\theta^{\lbrack{d + \delta_{\theta} - h - 1}\rbrack}\mu^{d - h - 1}{\sum\limits_{k = 0}^{d - 1}{R_{k}^{\lbrack k\rbrack}\mu^{k}}}}} \end{pmatrix}^{\lbrack{0:{d + \delta - 1}}\rbrack}} & (43) \end{matrix}$ where θ=μ^(δ) ^(θ) mod G(α)   (44)

In particular, for GF(p^(m)), since there is no carry propagation between digits, the serial-serial most-to-least implementation of a GF(p^(m)) is straight forward based on the abovementioned least-to-most implementation. As a recurrence, most-to-least serial-serial field multiplication would look like: $\begin{matrix} \begin{matrix} {R_{d + \delta} = \begin{pmatrix} {{\sum\limits_{i = 0}^{d + \delta - 1}{x_{d + \delta_{X} - i - 1}\mu^{d + \delta_{X} - i - 1}{\sum\limits_{j = 0}^{d + \delta - 1}{y_{d + \delta_{Y} - j - 1}\mu^{d + \delta_{Y} - j - 1}}}}} +} \\ {\sum\limits_{h = 0}^{d + \delta - 1}{\theta^{\lbrack{d + \delta_{\theta} - h - 1}\rbrack}\mu^{d - h - 1}{\sum\limits_{k = 0}^{d - 1}{R_{k}^{\lbrack k\rbrack}\mu^{k}}}}} \end{pmatrix}^{\lbrack{0:{d + \delta - 1}}\rbrack}} \\ {= \begin{pmatrix} {{x_{\delta_{X} - \delta}y_{\delta_{Y} - \delta}\mu^{\delta_{x} + \delta_{y} - {2\delta}}} + {x_{\delta_{X} - \delta}\mu^{\delta_{X} - \delta}}} \\ {{\sum\limits_{j = 0}^{d + \delta - 1}{y_{d + \delta_{Y} - j - 1}\mu^{d + \delta_{Y} - j - 1}}} +} \\ {{y_{\delta_{Y} - \delta}\mu^{\delta_{Y} - \delta}{\sum\limits_{i = 0}^{d + \delta - 2}{x_{d + \delta_{X} - i - 1}\mu^{d + \delta_{X} - i - 1}}}} +} \\ {\sum\limits_{i = 0}^{d + \delta - 2}{x_{d + \delta_{X} - i - 1}\mu^{d + \delta_{X} - i - 1}}} \\ {{\sum\limits_{j = 0}^{d + \delta - 2}{y_{d + \delta_{Y} - j - 1}\mu^{d + \delta_{Y} - j - 1}}} +} \\ {{\theta^{\lbrack{\delta_{\theta} - \delta}\rbrack}R_{d - 1}^{\lbrack{d - 1}\rbrack}\mu^{d - \delta - 1}} + {\theta^{\lbrack{\delta_{\theta} - \delta}\rbrack}\mu^{- \delta}}} \\ {{\sum\limits_{k = 0}^{d - 2}{R_{k}^{\lbrack k\rbrack}\mu^{k}}} + {R_{d - 1}^{\lbrack{d - 1}\rbrack}\mu^{d - 1}{\sum\limits_{h = 0}^{d + \delta - 2}{\theta^{\lbrack{d + \delta_{\theta} - h - 1}\rbrack}\mu^{d - h - 1}}}} +} \\ {\sum\limits_{h = 0}^{d + \delta - 2}{\theta^{\lbrack{d + \delta_{\theta} - h - 1}\rbrack}\mu^{d - h - 1}{\sum\limits_{k = 0}^{d - 2}{R_{k}^{\lbrack k\rbrack}\mu^{k}}}}} \end{pmatrix}^{\lbrack{0:{d + \delta - 1}}\rbrack}} \\ {\begin{matrix} {= {{x_{\delta_{X} - \delta}y_{\delta_{Y} - \delta}\mu^{\delta_{x} + \delta_{Y} - {2\delta}}} + {x_{\delta_{X} - \delta}\mu^{\delta_{X} - \delta}{\sum\limits_{j = 0}^{d + \delta - 2}{y_{d + \delta_{Y} - j - 1}\mu^{d + \delta_{Y} - j - 1}}}}}} \\ {{{+ y_{\delta_{Y} - \delta}}\mu^{\delta_{Y} - \delta}{\sum\limits_{i = 0}^{d + \delta - 2}{x_{d + \delta_{X} - i - 1}\mu^{d + \delta_{X} - i - 1}}}} +} \\ {{\theta^{\lbrack{\delta_{\theta} - \delta}\rbrack}R_{d - 1}^{\lbrack{d - 1}\rbrack}\mu^{d - \delta - 1}} + {\theta^{\lbrack{\delta_{\theta} - \delta}\rbrack}\mu^{- \delta}{\sum\limits_{k = 0}^{d - 2}{R_{k}^{\lbrack k\rbrack}\mu^{k}}}} + {R_{d - 1}^{\lbrack{d - 1}\rbrack}\mu^{d - 1}}} \\ {{\sum\limits_{h = 0}^{d + \delta - 2}{\theta^{\lbrack{d + \delta_{\theta} - h - 1}\rbrack}\mu^{d - h - 1}}} + {\mu\quad R_{d + \delta - 1}}} \end{matrix}} \end{matrix} & (45) \end{matrix}$

In general, $\begin{matrix} \begin{matrix} \begin{matrix} {R_{g} = \begin{pmatrix} {{\sum\limits_{i = 0}^{g - 1}{x_{d + \delta_{X} - i - 1}\mu^{d + \delta_{X} - i - 1}{\sum\limits_{j = 0}^{g - 1}{y_{d + \delta_{Y} - j - 1}\mu^{d + \delta_{Y} - j - 1}}}}} +} \\ {\sum\limits_{h = 0}^{g - 1}{\theta^{\lbrack{d + \delta_{\theta} - h - 1}\rbrack}\mu^{d - h - 1}{\sum\limits_{k = 0}^{g - \delta - 1}{R_{k}^{\lbrack k\rbrack}\mu^{k}}}}} \end{pmatrix}^{\lbrack{0:{g - 1}}\rbrack}} \\ {= \begin{pmatrix} {{x_{d + \delta_{X} - g}y_{d + \delta_{Y} - g}\mu^{{2{({d - g})}} + \delta_{X} + \delta_{y}}} + {x_{d + \delta_{X} - g}\mu^{d + \delta_{X} - g}}} \\ {{\sum\limits_{j = 0}^{g - 2}{y_{d + \delta_{Y} - j - 1}\mu^{d + \delta_{Y} - j - 1}}} + {y_{d + \delta_{Y} - g}\mu^{d + \delta_{Y} - g}}} \\ {{\sum\limits_{i = 0}^{g - 2}{x_{d + \delta_{X} - i - 1}\mu^{d + \delta_{X} - i - 1}}} + {\sum\limits_{i = 0}^{g - 2}{x_{d + \delta_{X} - i - 1}\mu^{d + \delta_{X} - i - 1}}}} \\ {{\sum\limits_{j = 0}^{g - 2}{y_{d + \delta_{Y} - j - 1}\mu^{d + \delta_{Y} - j - 1}}} + {\theta^{\lbrack{d + \delta_{\theta} - g}\rbrack}R_{g - \delta - 1}^{\lbrack{g - \delta - 1}\rbrack}\mu^{d - \delta - 1}} +} \\ {{\theta^{\lbrack{d + \delta_{\theta} - g}\rbrack}\mu^{d - g}{\sum\limits_{k = 0}^{g - \delta - 2}{R_{k}^{\lbrack k\rbrack}\mu^{k}}}} + {R_{g - \delta - 1}^{\lbrack{g - \delta - 1}\rbrack}\mu^{g - \delta - 1}}} \\ {{\sum\limits_{h = 0}^{g - 2}{\theta^{\lbrack{d + \delta_{\theta} - h - 1}\rbrack}\mu^{d - h - 1}}} + {\sum\limits_{h = 0}^{g - 2}{\theta^{\lbrack{d + \delta_{\theta} - h - 1}\rbrack}\mu^{d - h - 1}{\sum\limits_{k = 0}^{g - \delta - 2}{R_{k}^{\lbrack k\rbrack}\mu^{k}}}}}} \end{pmatrix}^{\lbrack{0:{g - 1}}\rbrack}} \end{matrix} \\ \begin{matrix} {= {{x_{d + \delta_{X} - g}y_{d + \delta_{Y} - g}\mu^{{2{({d - g})}} + \delta_{X} + \delta_{Y}}} +}} \\ \begin{matrix} \begin{matrix} \begin{matrix} \begin{matrix} \begin{matrix} {{x_{d + \delta_{X} - g}\mu^{d + \delta_{X} - g}{\sum\limits_{j = 0}^{g - 2}{y_{d + \delta_{Y} - j - 1}\mu^{d + \delta_{Y} - j - 1}}}} +} \\ {{y_{d + \delta_{Y} - g}\mu^{d + \delta_{Y} - g}{\sum\limits_{i = 0}^{g - 2}{x_{d + \delta_{X} - i - 1}\mu^{d + \delta_{X} - i - 1}}}} +} \end{matrix} \\ {{\theta^{\lbrack{d + \delta_{\theta} - g}\rbrack}R_{g - \delta - 1}^{\lbrack{g - \delta - 1}\rbrack}\mu^{d - \delta - 1}} +} \end{matrix} \\ {{\theta^{\lbrack{d + \delta_{\theta} - g}\rbrack}\mu^{d - g}{\sum\limits_{k = 0}^{g - \delta - 2}{R_{k}^{\lbrack k\rbrack}\mu^{k}}}} +} \end{matrix} \\ {{R_{g - \delta - 1}^{\lbrack{g - \delta - 1}\rbrack}\mu^{g - \delta - 1}{\sum\limits_{h = 0}^{g - 2}{\theta^{\lbrack{d + \delta_{\theta} - h - 1}\rbrack}\mu^{d - h - 1}}}} + {\mu\quad R_{g - 1}}} \end{matrix} \\ {{{where}\quad 0} \leq g \leq {d + \delta}} \end{matrix} \end{matrix} \end{matrix} & (46) \end{matrix}$

15. A Generalized Bi-Directional Equation for Serial-Serial Field Multiplication

The equations that describe serial-serial field multiplication can be merged in one equation that can be interpreted in both directions, least-to-most and most-to-least. This can be achieved using a parameter ρ which indicates least-to-most when it is −1 and most-to-least when it is 1, as shown in equation (47). $\begin{matrix} {R = \left\lbrack {\mu^{\frac{\delta_{R} + d}{2}{({\rho - 1})}}\begin{pmatrix} \begin{matrix} {\sum\limits_{i = 0}^{d + \delta - 1}{x_{{\rho{({\frac{d - 1}{2} + \delta_{X} - i})}} + \frac{d - 1}{2}}{\mu^{{\rho{({\frac{d - 1}{2} + \delta_{X} - i})}} + \frac{d - 1}{2}} \cdot}}} \\ {{\sum\limits_{j = 0}^{d + \delta - 1}{y_{{\rho{({\frac{d - 1}{2} + \delta_{Y} - j})}} + \frac{d - 1}{2}}\mu^{{\rho{({\frac{d - 1}{2} + \delta_{Y} - j})}} + \frac{d - 1}{2}}}} +} \end{matrix} \\ \begin{matrix} {\sum\limits_{h = 0}^{d + \delta - 1}{\theta^{{\rho{({\frac{d - 1}{2} + \delta_{\theta} - h})}} + \frac{d - 1}{2}}\mu^{{\rho{({\frac{d - 1}{2} - h})}} + \frac{d - 1}{2}}}} \\ {\sum\limits_{k = 0}^{d - 1}{R_{k}^{\lbrack{\frac{k}{2}{({\rho + 1})}}\rbrack}\mu^{k}}} \end{matrix} \end{pmatrix}} \right\rbrack^{\lbrack{0:{d + \delta - 1}}\rbrack}} & (47) \end{matrix}$

As a result, the same structure can be used to implement most-to-least computation or least-to-most computation.

16. Hybrid Most-to-Least and Least-to-Most Serial-Serial Field Multiplication

It is possible to mix the most-to-least and the least-to-most computation in one formulation when implementing a scalable field multiplication. This would result in the two multiplication algorithms meeting in the middle of the multiplication operation.

FIG. 10 illustrates the time-space mapping of the multiplication and reduction operations of finite field multiplication to achieve inherent serial-serial behavior. It shows the finite field multiplication operation of two operands X=x₃x₂x₁x₀ and Y=y₃y₂y₁y₀. The multiplication part of the finite field multiplication operation is shown by the hollow circles, while the reduction part is shown by the black circles. The thick lines show the time-space mapping by separating the operations performed in different time cycles. In each of the cycles, each column indicates the operations performed simultaneously on a single cell.

While the invention has been described in connection with its preferred embodiments, it should be recognized that changes and modifications made be made therein without departing from the scope of the appended claims. 

1. In an information system for processing, storage and transmission of data, the improvement characterized by: providing a finite field serial-serial multiplication/reduction structure wherein an initial delay and clock-cycle are inherently independent of word length, wherein input operands are serially entered one digit at a time and the output result is computed serially one digit at a time, wherein a digit can consist of one bit or a group of bits, and wherein these are achieved without the need for extra pipeline registers, irregular adder structure, serial-in-parallel-out register for the input operand, and parallel-in-serial-out register for the output operand.
 2. In an information system for processing, storage and transmission of data according to claim 1, wherein a serial transfer reduces the bus width needed to transfer data back and forth between memory and multiplication.
 3. In an information system for processing, storage and transmission of data according to claim 2 wherein the finite field serial-serial multiplication/reduction structure is scalable so that a small word length can be used to implement the multiplication of a large word length.
 4. In an information system for processing, storage and transmission of data according to claim 3, in which the finite fields include GF(p), GF(p^(m)) and GF(2^(m)) and wherein GF(p) is a prime field of size p, GF(p^(m)) is an extension field defined by an irreducible polynomial of degree m, and GF(2^(m)) is the same as GF(p^(m)) with p=2.
 5. In an information system for processing, storage and transmission of data according to claim 4, in which a reduction polynomial is fed serially to the structure so that changing the reduction polynomial will not require rewriting or rewiring the structure.
 6. In an information system for processing, storage and transmission of data according to claim 5, in which digits of operands and accumulation of partial product digits flow in opposite directions so that an initial delay and a propagation delay of accumulating the sum of the digits are inherently independent of word length.
 7. In an information system for processing, storage and transmission of data according to claim 6, in which the structure is implemented as a systolic array wherein the array consists of similar cells that are laid out in regular pattern with localized inter-cell communication.
 8. In an information system for processing, storage and transmission of data according to claim 7, in which pipelining registers are inserted into the structure to improve performance by increasing clock frequency, reducing power consumption, and/or ensure localized interconnections.
 9. In an information system for processing, storage and transmission of data according to claim 8, wherein the multiplication/reduction structure is implemented either as a pure hardware unit, as a program stored on a computer readable storage device and executed on a digital computer, or as a combination of both.
 10. A finite field multiplication/reduction structure in which an operand multiplication and a field reduction are formulated as a serial-serial computation, wherein the formula for least-to-most significant digit first multiplication is: $\begin{matrix} {R_{g}^{*} = {{x_{g + \delta - \delta_{R} - \delta_{X}}y_{g + \delta - \delta_{R} - \delta_{Y}}\mu^{g + {2\delta} - \delta_{X} - \delta_{Y} - {2\delta_{R}}}} + {x_{g + \delta - \delta_{R} - \delta_{X}}\mu^{\delta - \delta_{X} - \delta_{R}}{\sum\limits_{j = 0}^{g + \delta - \delta_{R} - 1}{y_{j - \delta_{Y}}\mu^{j - \delta_{Y}}}}} + {y_{g + \delta - \delta_{R} - \delta_{Y}}\mu^{\delta - \delta_{Y} - \delta_{R}}{\sum\limits_{i = 0}^{g + \delta - \delta_{R} - 1}{x_{i - \delta_{X}}\mu^{i - \delta_{X}}}}} + {\theta^{\lbrack{g + \delta - \delta_{R} - \delta_{\theta}}\rbrack}R_{g - \delta_{R}}^{*{\lbrack 0\rbrack}}\mu^{g + \delta - \delta_{\theta} - {2\delta_{R}}}} + {\theta^{\lbrack{g + \delta - \delta_{R} - \delta_{\theta}}\rbrack}\mu^{\delta - \delta_{R}}{\sum\limits_{k = 0}^{g - \delta_{R} - 1}{R_{k}^{*{\lbrack 0\rbrack}}\mu^{k}}}} + {R_{g - \delta_{R}}^{*{\lbrack 0\rbrack}}\mu^{- \delta_{R}}{\sum\limits_{h = 0}^{g + \delta - \delta_{R} - 1}{\theta^{\lbrack{h - \delta_{\theta}}\rbrack}\mu^{h}}}} + {\mu^{- 1}R_{g - 1}^{*}}}} & (48) \end{matrix}$ wherein the formula for most-to-least significant digit first multiplication is: $\begin{matrix} {R_{g} = {{x_{d + \delta_{X} - g}y_{d + \delta_{Y} - g}\mu^{{2{({d - g})}} + \delta_{X} + \delta_{Y}}} + {x_{d + \delta_{X} - g}\mu^{d + \delta_{X} - g}{\sum\limits_{j = 0}^{g - 2}{y_{d + \delta_{Y} - j - 1}\mu^{d + \delta_{Y} - j - 1}}}} + {y_{d + \delta_{Y} - g}\mu^{d + \delta_{Y} - g}{\sum\limits_{i = 0}^{g - 2}{x_{d + \delta_{X} - i - 1}\mu^{d + \delta_{X} - i - 1}}}} + {\theta^{\lbrack{d + \delta_{\theta} - g}\rbrack}R_{g - \delta - 1}^{\lbrack{g - \delta - 1}\rbrack}\mu^{d - \delta - 1}} + {\theta^{\lbrack{d + \delta_{\theta} - g}\rbrack}\mu^{d - g}{\sum\limits_{k = 0}^{g - \delta - 2}{R_{k}^{\lbrack k\rbrack}\mu^{k}}}} + {R_{g - \delta - 1}^{\lbrack{g - \delta - 1}\rbrack}\mu^{g - \delta - 1}{\sum\limits_{h = 0}^{g - 2}{\theta^{\lbrack{d + \delta_{\theta} - h - 1}\rbrack}\mu^{d - h - 1}}}} + {\mu\quad R_{g - 1}}}} & (49) \end{matrix}$ wherein the formula for least-to-most significant digit first reduction is: $\begin{matrix} {R_{g}^{*} = {W^{\lbrack g\rbrack} + {\theta^{\lbrack{g + \delta - \delta_{R} - \delta_{\theta}}\rbrack}R_{g - \delta_{R}}^{*{\lbrack 0\rbrack}}\mu^{g + \delta - \delta_{\theta} - {2\delta_{R}}}} + {\theta^{\lbrack{g + \delta - \delta_{R} - \delta_{\theta}}\rbrack}\mu^{\delta - \delta_{R}}{\sum\limits_{k = 0}^{g - \delta_{R} - 1}{R_{k}^{*{\lbrack 0\rbrack}}\mu^{k}}}} + {R_{g - \delta_{R}}^{*{\lbrack 0\rbrack}}\mu^{- \delta_{R}}{\sum\limits_{h = 0}^{g + \delta - \delta_{R} - 1}{\theta^{\lbrack{h - \delta_{\theta}}\rbrack}\mu^{h}}}} + {\mu^{- 1}R_{g - 1}^{*}}}} & (50) \end{matrix}$ wherein the formula for most-to-least significant digit first reduction is: $\begin{matrix} {R_{g} = {W^{\lbrack{{2d} + \delta - g}\rbrack} + {\theta^{\lbrack{d + \delta_{\theta} - g}\rbrack}R_{g - \delta - 1}^{\lbrack{g - \delta - 1}\rbrack}\mu^{d - \delta - 1}} + {\theta^{\lbrack{d + \delta_{\theta} - g}\rbrack}\mu^{d - g}{\sum\limits_{k = 0}^{g - \delta - 2}{R_{k}^{\lbrack k\rbrack}\mu^{k}}}} + {R_{g - \delta - 1}^{\lbrack{g - \delta - 1}\rbrack}\mu^{g - \delta - 1}{\sum\limits_{h = 0}^{g - 2}{\theta^{\lbrack{d + \delta_{\theta} - h - 1}\rbrack}\mu^{d - h - 1}}}} + {\mu\quad R_{g - 1}}}} & (51) \end{matrix}$ wherein 0≦g≦d+δ, x_(i) and y_(i) are the i^(th) digits of the input operands to be multiplied, θ^([i]) is the i^(th) digit of the reduction polynomial, W is the 2d-digits quantity to be reduced and W^([g]) is the g^(th) digit of W, and wherein the computation for d+δ+1≦g≦2d+δ is formulated in an identical fashion except that the resultant feedback digits are not fed back but used as the output of the structure.
 11. A finite field multiplication/reduction structure according to claim 10, wherein any input is fed serially one digit at a time and an output is obtained serially one digit at a time and wherein a digit can consist of one bit or a group of bits.
 12. A finite field multiplication/reduction structure according to claim 11, which is implemented either as a pure hardware unit, or as a program stored on a computer readable storage device and executed on a digital computer, or a combination of both.
 13. A finite field multiplication/reduction structure according to claim 12, which is optimized by exploiting different trade-offs that result from varying the digit size.
 14. A finite field multiplication/reduction structure according to claim 13, wherein the result of each digit multiplication is split into high- and low-significance digits, and wherein least-to-most significant digit first multiplication is implemented according to the formula: $\begin{matrix} {R_{g}^{*} = {{\left( {{\left\lbrack {x_{g + \delta - \delta_{X} - \delta_{R}}y_{g + \delta - \delta_{Y} - \delta_{R}}} \right\rbrack_{H}\mu} + \left\lbrack {x_{g + \delta - \delta_{X} - \delta_{R}}y_{g + \delta - \delta_{Y} - \delta_{R}}} \right\rbrack_{L}} \right)\mu^{g + {2\delta} - \delta_{X} - \delta_{Y} - {2\delta_{R}}}} + {\mu^{\delta - \delta_{X} - \delta_{R}}{\sum\limits_{j = 0}^{g + \delta - \delta_{R} - 1}{\left( {{\left\lbrack {x_{g + \delta - \delta_{X} - \delta_{R}}y_{j - \delta_{Y}}} \right\rbrack_{H}\mu} + \left\lbrack {x_{g + \delta - \delta_{X} - \delta_{R}}y_{j - \delta_{Y}}} \right\rbrack_{L}} \right)\mu^{j - \delta_{Y}}}}} + {\mu^{\delta - \delta_{Y} - \delta_{R}}{\sum\limits_{i = 0}^{g + \delta - \delta_{R} - 1}{\left( {{\left\lbrack {x_{i - \delta_{X}}y_{g + \delta - \delta_{Y} - \delta_{R}}} \right\rbrack_{H}\mu} + \left\lbrack {x_{i - \delta_{X}}y_{g + \delta - \delta_{Y} - \delta_{R}}} \right\rbrack_{L}} \right)\mu^{i - \delta_{X}}}}} + {\left( {{\left\lbrack {\theta^{\lbrack{g + \delta - \delta_{\theta} - \delta_{R}}\rbrack}R_{g - \delta_{R}}^{*{\lbrack 0\rbrack}}} \right\rbrack_{H}\mu} + \left\lbrack {\theta^{\lbrack{g + \delta - \delta_{\theta} - \delta_{R}}\rbrack}R_{g - \delta_{R}}^{*{\lbrack 0\rbrack}}} \right\rbrack_{L}} \right)\mu^{g + \delta - \delta_{\theta} - {2\delta_{R}}}} + {\mu^{\delta - \delta_{R}}{\sum\limits_{k = 0}^{g - \delta_{R} - 1}{\left( {{\left\lbrack {\theta^{\lbrack{g + \delta - \delta_{\theta} - \delta_{R}}\rbrack}R_{k}^{*{\lbrack 0\rbrack}}} \right\rbrack_{H}\mu} + \left\lbrack {\theta^{\lbrack{g + \delta - \delta_{\theta} - \delta_{R}}\rbrack}R_{k}^{*{\lbrack 0\rbrack}}} \right\rbrack_{L}} \right)\mu^{k}}}} + {\mu^{{- \delta_{R}}\quad}{\sum\limits_{h = 0}^{g + \delta - \delta_{R} - 1}{\left( {{\left\lbrack {\theta^{\lbrack{h - \delta_{\theta}}\rbrack}R_{g - \delta_{R}}^{*{\lbrack 0\rbrack}}} \right\rbrack_{H}\mu} + \left\lbrack {\theta^{\lbrack{h - \delta_{\theta}}\rbrack}R_{g - \delta_{R}}^{*{\lbrack 0\rbrack}}} \right\rbrack_{L}} \right)\mu^{h}}}} + {\mu^{- 1}R_{g - 1}^{*}}}} & (52) \end{matrix}$ wherein most-to-least significant digit first multiplication is implemented according to the formula: $\begin{matrix} {R_{g} = {{\left( {{\left\lbrack {x_{d + \delta_{X} - g}y_{d + \delta_{Y} - g}} \right\rbrack_{H}\mu} + \left\lbrack {x_{d + \delta_{X} - g}y_{d + \delta_{Y} - g}} \right\rbrack_{L}} \right)\mu^{{2{({d - g})}} + \delta_{X} + \delta_{Y}}} + {\mu^{d + \delta_{X} - g}\quad{\sum\limits_{j = 0}^{g - 2}{\left( {{\left\lbrack {x_{d + \delta_{X} - g}y_{d + \delta_{Y} - j - 1}} \right\rbrack_{H}\mu} + \left\lbrack {x_{d + \delta_{X} - g}y_{d + \delta_{Y} - j - 1}} \right\rbrack_{L}} \right)\mu^{d + \delta_{Y} - j - 1}}}} + \quad{\mu^{d + \delta_{Y} - g}\quad{\sum\limits_{i = 0}^{g - 2}{\left( {{\left\lbrack {x_{d + \delta_{X} - i - 1}y_{d + \delta_{Y} - g}} \right\rbrack_{H}\mu} + \left\lbrack {x_{d + \delta_{X} - i - 1}y_{d + \delta_{Y} - g}} \right\rbrack_{L}} \right)\quad\mu^{d + \delta_{X} - i - 1}}}} + \quad{\left( {{\left\lbrack {\theta^{\lbrack{d + \delta_{\theta} - g}\rbrack}R_{g - \delta - 1}^{\lbrack{g - \delta - 1}\rbrack}} \right\rbrack_{H}\mu} + \quad\left\lbrack {\theta^{\lbrack{d + \delta_{\theta} - g}\rbrack}R_{g - \delta - 1}^{\lbrack{g - \delta - 1}\rbrack}} \right\rbrack_{L}} \right)\quad\mu^{d - \delta - 1}} + \quad{\mu^{d - g}\quad{\sum\limits_{k = 0}^{g - \delta - 2}{\left( \quad{{\left\lbrack {\theta^{\lbrack{d + \delta_{\theta} - g}\rbrack}R_{k}^{\lbrack k\rbrack}} \right\rbrack_{H}\mu} + \left\lbrack {\theta^{\lbrack{d + \delta_{\theta} - g}\rbrack}R_{k}^{\lbrack k\rbrack}} \right\rbrack_{L}} \right)\mu^{k}}}} + \quad{\mu^{{g - \delta - 1}\quad}\quad{\sum\limits_{h = 0}^{g - 2}{\left( {{\left\lbrack {\theta^{\lbrack{d + \delta_{\theta} - h - 1}\rbrack}R_{g - \delta - 1}^{\lbrack{g - \delta - 1}\rbrack}} \right\rbrack_{H}\mu} + \left\lbrack {\theta^{\lbrack{d + \delta_{\theta} - h - 1}\rbrack}R_{g - \delta - 1}^{\lbrack{g - \delta - 1}\rbrack}} \right\rbrack_{L}} \right)\mu^{d - h - 1}}}} + {\mu\quad R_{g - 1}}}} & (53) \end{matrix}$ wherein least-to-most significant digit first reduction is implemented according to the formula: $\begin{matrix} {R_{g}^{*} = {W^{\lbrack g\rbrack} + {\left( {{\left\lbrack {\theta^{\lbrack{g + \delta - \delta_{R} - \delta_{\theta}}\rbrack}R_{g - \delta_{R}}^{*{\lbrack 0\rbrack}}} \right\rbrack_{H}\mu} + \left\lbrack {\theta^{\lbrack{g + \delta - \delta_{R} - \delta_{\theta}}\rbrack}R_{g - \delta_{R}}^{*{\lbrack 0\rbrack}}} \right\rbrack_{L}} \right)\mu^{g + \delta - \delta_{\theta} - {2\delta_{R}}}} + {\mu^{\delta - \delta_{R}}{\sum\limits_{k = 0}^{g - \delta_{R} - 1}{\left( {{\left\lbrack {\theta^{\lbrack{g + \delta - \delta_{R} - \delta_{\theta}}\rbrack}R_{k}^{*{\lbrack 0\rbrack}}} \right\rbrack_{H}\mu} + \left\lbrack {\theta^{\lbrack{g + \delta - \delta_{R} - \delta_{\theta}}\rbrack}R_{k}^{*{\lbrack 0\rbrack}}} \right\rbrack_{L}} \right)\mu^{k}}}} + {\mu^{- \delta_{R}}{\sum\limits_{h = 0}^{g + \delta - \delta_{R} - 1}{\left( {{\left\lbrack {R_{g - \delta_{R}}^{*{\lbrack 0\rbrack}}\theta^{\lbrack{h - \delta_{\theta}}\rbrack}} \right\rbrack_{H}\mu} + \left\lbrack {R_{g - \delta_{R}}^{*{\lbrack 0\rbrack}}\theta^{\lbrack{h - \delta_{\theta}}\rbrack}} \right\rbrack_{L}} \right)\mu^{h}}}} + {{\mu\quad}^{- 1}R_{g - 1}^{*}}}} & (54) \end{matrix}$ wherein most-to-least significant digit first reduction is implemented according to the formula: $\begin{matrix} {R_{g}^{*} = {W^{\lbrack{{2d} + \delta - g}\rbrack} + {\left( {{\left\lfloor {\theta^{\lbrack{d + \delta_{\theta} - g}\rbrack}R_{g - \delta - 1}^{\lbrack{g - \delta - 1}\rbrack}} \right\rfloor_{H}\mu} + \left\lfloor {\theta^{\lbrack{d + \delta_{\theta} - g}\rbrack}R_{g - \delta - 1}^{\lbrack{g - \delta - 1}\rbrack}} \right\rfloor_{L}} \right)\mu^{d - \delta - 1}} + {\mu^{d - g}{\sum\limits_{k = 0}^{g - \delta - 2}{\left( {{\left\lbrack {\theta^{\lbrack{d + \delta_{\theta} - g}\rbrack}R_{k}^{\lbrack k\rbrack}} \right\rbrack_{H}\mu} + \left\lbrack {\theta^{\lbrack{d + \delta_{\theta} - g}\rbrack}R_{k}^{\lbrack k\rbrack}} \right\rbrack_{L}} \right)\mu^{k}}}} + {\mu^{g - \delta - 1}\quad{\sum\limits_{h = 0}^{g - 2}{\left( {{\left\lbrack {R_{g - \delta - 1}^{\lbrack{g - \delta - 1}\rbrack}\theta^{\lbrack{d + \delta_{\theta} - h - 1}\rbrack}} \right\rbrack_{H}\mu} + \left\lbrack {R_{g - \delta - 1}^{\lbrack{g - \delta - 1}\rbrack}\theta^{\lbrack{d + \delta_{\theta} - h - 1}\rbrack}} \right\rbrack_{L}} \right)\mu^{d - h - 1}}}} + {\mu\quad R_{g - 1}}}} & (55) \end{matrix}$ for 0≦g≦d+δ, wherein the computation for d+δ+1≦g≦2d+δ is formulated in an identical fashion except that the resultant feedback digits are not fed back but used as the output of the structure.
 15. A finite field multiplication/reduction structure according to claim 14, wherein the result is divided into digits that are obtained by accumulating digits of the same significance in the right-hand side of the equation, wherein least-to-most significant digit first multiplication is implemented according to the formula: $\begin{matrix} {{\sum\limits_{l = 0}^{g + 1}\quad{R_{g}^{*{\lbrack l\rbrack}}\mu^{l}}} = {{\left( {{\left\lbrack {x_{g + \delta - \delta_{X} - \delta_{R}}y_{g + \delta - \delta_{Y} - \delta_{R}}} \right\rbrack_{H}\mu} + \left\lbrack {x_{g + \delta - \delta_{X} - \delta_{R}}y_{g + \delta - \delta_{Y} - \delta_{R}}} \right\rbrack_{L}} \right)\mu^{g + {2\delta} - \delta_{X} - \delta_{Y} - {2\delta_{R}}}} + {\mu^{\delta - \delta_{X} - \delta_{R}}{\sum\limits_{j = 0}^{g + \delta - \delta_{R} - 1}{\left( {{\left\lbrack {x_{g + \delta - \delta_{X} - \delta_{R}}y_{j - \delta_{Y}}} \right\rbrack_{H}\mu} + \left\lbrack {x_{g + \delta - \delta_{X} - \delta_{R}}y_{j - \delta_{Y}}} \right\rbrack_{L}} \right)\mu^{j - \delta_{Y}}}}} + {\mu^{\delta - \delta_{Y} - \delta_{R}}{\sum\limits_{i = 0}^{g + \delta - \delta_{R} - 1}{\left( {{\left\lbrack {x_{i - \delta_{X}}y_{g - \delta - \delta_{Y} - \delta_{R}}} \right\rbrack_{H}\mu} + \left\lbrack {x_{i - \delta_{X}}y_{g + \delta - \delta_{Y} - \delta_{R}}} \right\rbrack_{L}} \right)\mu^{i - \delta_{X}}}}} + {\left( {{\left\lbrack {\theta^{\lbrack{g + \delta - \delta_{\theta} - \delta_{R}}\rbrack}R_{g - \delta_{R}}^{*{\lbrack 0\rbrack}}} \right\rbrack_{H}\mu} + \left\lbrack {\theta^{\lbrack{g + \delta - \delta_{\theta} - \delta_{R}}\rbrack}R_{g - \delta_{R}}^{*{\lbrack 0\rbrack}}} \right\rbrack_{L}} \right)\mu^{g + \delta - \delta_{\theta} - {2\delta_{R}}}} + {\mu^{\delta - \delta_{R}}{\sum\limits_{k = 0}^{g - \delta_{R} - 1}{\left( {{\left\lbrack {\theta^{\lbrack{g + \delta - \delta_{\theta} - \delta_{R}}\rbrack}R_{k}^{*{\lbrack 0\rbrack}}} \right\rbrack_{H}\mu} + \left\lbrack {\theta^{\lbrack{g + \delta - \delta_{\theta} - \delta_{R}}\rbrack}R_{k}^{*{\lbrack 0\rbrack}}} \right\rbrack_{L}} \right)\mu^{k}}}} + {\mu^{- \delta_{R}}{\sum\limits_{h = 0}^{g + \delta - \delta_{R} - 1}{\left( {{\left\lbrack {\theta^{\lbrack{h - \delta_{\theta}}\rbrack}R_{g - \delta_{R}}^{*{\lbrack 0\rbrack}}} \right\rbrack_{H}\mu} + \left\lbrack {\theta^{\lbrack{h - \delta_{\theta}}\rbrack}R_{g - \delta_{R}}^{*{\lbrack 0\rbrack}}} \right\rbrack_{L}} \right)\mu^{h}}}} + {\mu^{- 1}R_{g - 1}^{*}}}} & (56) \end{matrix}$ wherein most-to-least significant digit first multiplication is implemented according to the formula: $\begin{matrix} {{\sum\limits_{l = 0}^{g + 1}\quad{R_{g}^{\lbrack l\rbrack}\mu^{l}}} = {{\left( {{\left\lbrack {x_{d + \delta_{X} - g}y_{d + \delta_{Y} - g}} \right\rbrack_{H}\mu} + \left\lbrack {x_{d + \delta_{X} - g}y_{d + \delta_{Y} - g}} \right\rbrack_{L}} \right)\mu^{{2{({d - g})}} + \delta_{X} + \delta_{Y}}} + {\mu^{d + \delta_{X} - g}\quad{\sum\limits_{j = 0}^{g - 2}{\left( {{\left\lbrack {x_{d + \delta_{X} - g}y_{d + \delta_{Y} - j - 1}} \right\rbrack_{H}\mu} + \left\lbrack {x_{d + \delta_{X} - g}y_{d + \delta_{Y} - j - 1}} \right\rbrack_{L}} \right)\mu^{d + \delta_{Y} - j - 1}}}} + \quad{\mu^{d + \delta_{Y} - g}{\sum\limits_{i = 0}^{g - 2}{\left( {{\left\lbrack {x_{d + \delta_{X} - i - 1}y_{d + \delta_{Y} - g}} \right\rbrack_{H}\quad\mu} + \quad\left\lbrack {x_{d + \delta_{X} - i - 1}y_{d + \delta_{Y} - g}} \right\rbrack_{L}} \right)\mu^{d + \delta_{X} - i - 1}}}} + \quad{\left( {{\left\lbrack {\theta^{\lbrack{d + \delta_{\theta} - g}\rbrack}R_{g - \delta - 1}^{\lbrack{g - \delta - 1}\rbrack}} \right\rbrack_{H}\mu} + \left\lbrack {\theta^{\lbrack{d + \delta_{\theta} - g}\rbrack}R_{g - \delta - 1}^{\lbrack{g - \delta - 1}\rbrack}} \right\rbrack_{L}} \right)\mu^{d - \delta - 1}} + {\mu^{d - g}{\sum\limits_{k = 0}^{g - \delta - 2}{\left( {{\left\lbrack {\theta^{\lbrack{d + \delta_{\theta} - g}\rbrack}R_{k}^{\lbrack k\rbrack}} \right\rbrack_{H}\mu} + \left\lbrack {\theta^{\lbrack{d + \delta_{\theta} - g}\rbrack}R_{k}^{\lbrack k\rbrack}} \right\rbrack_{L}} \right)\mu^{k}}}} + {\mu^{g - \delta - 1}{\sum\limits_{h = 0}^{g - 2}{\left( {{\left\lbrack {\theta^{\lbrack{d + \delta_{\theta} - h - 1}\rbrack}R_{g - \delta - 1}^{\lbrack{g - \delta - 1}\rbrack}} \right\rbrack_{H}\mu} + \left\lbrack {\theta^{\lbrack{d + \delta_{\theta} - h - 1}\rbrack}R_{g - \delta - 1}^{\lbrack{g - \delta - 1}\rbrack}} \right\rbrack_{L}} \right)\mu^{d - h - 1}}}} + {\mu\quad R_{g - 1}}}} & (57) \end{matrix}$ wherein least-to-most significant digit first reduction is implemented according to the formula: $\begin{matrix} {{\sum\limits_{l = 0}^{g + 1}\quad{R_{g}^{*{\lbrack l\rbrack}}\mu^{l}}} = {W^{\lbrack g\rbrack} + {\left( {{\left\lbrack {\theta^{\lbrack{g + \delta - \delta_{R} - \delta_{\theta}}\rbrack}R_{g - \delta_{R}}^{*{\lbrack 0\rbrack}}} \right\rbrack_{H}\mu} + \left\lbrack {\theta^{\lbrack{g + \delta - \delta_{R} - \delta_{\theta}}\rbrack}R_{g - \delta_{R}}^{*{\lbrack 0\rbrack}}} \right\rbrack_{L}} \right)\mu^{g + \delta - \delta_{\theta} - {2\delta_{R}}}} + {\mu^{\delta - \delta_{R}}\quad{\sum\limits_{k = 0}^{g - \delta_{R} - 1}{\left( {{\left\lbrack {\theta^{\lbrack{g + \delta - \delta_{R} - \delta_{\theta}}\rbrack}R_{k}^{*{\lbrack 0\rbrack}}} \right\rbrack_{H}\mu} + \left\lbrack {\theta^{\lbrack{g + \delta - \delta_{R} - \delta_{\theta}}\rbrack}R_{k}^{*{\lbrack 0\rbrack}}} \right\rbrack_{L}} \right)\mu^{k}}}} + {\mu^{- \delta_{R}}{\sum\limits_{h = 0}^{g + \delta - \delta_{R} - 1}{\left( {{\left\lbrack {R_{g - \delta_{R}}^{*{\lbrack 0\rbrack}}\theta^{\lbrack{h - \delta_{\theta}}\rbrack}} \right\rbrack_{H}\mu} + \left\lbrack {R_{g - \delta_{R}}^{*{\lbrack 0\rbrack}}\theta^{\lbrack{h - \delta_{\theta}}\rbrack}} \right\rbrack_{L}} \right)\mu^{h}}}} + {\mu^{- 1}\quad R_{g - 1}^{*}}}} & (58) \end{matrix}$ wherein most-to-least significant digit first reduction is implemented according to the formula: $\begin{matrix} \begin{matrix} {{\sum\limits_{l = 0}^{g + 1}\quad{R_{g}^{\lbrack l\rbrack}\mu^{l}}} = {W^{\lbrack{{2d} + \delta - g}\rbrack} + {\left( {{\left\lbrack {\theta^{\lbrack{d + \delta_{\theta} - g}\rbrack}R_{g - \delta - 1}^{\lbrack{g - \delta - 1}\rbrack}} \right\rbrack_{H}\mu} + \left\lbrack {\theta^{\lbrack{d + \delta_{\theta} - g}\rbrack}R_{g - \delta - 1}^{\lbrack{g - \delta - 1}\rbrack}} \right\rbrack_{L}} \right)\mu^{d - \delta - 1}} + {\mu^{d - g}\quad{\sum\limits_{k = 0}^{g - \delta - 2}{\left( {{\left\lbrack {\theta^{\lbrack{d + \delta_{\theta} - g}\rbrack}R_{k}^{\lbrack k\rbrack}} \right\rbrack_{H}\mu} + \left\lbrack {\theta^{\lbrack{d + \delta_{\theta} - g}\rbrack}R_{k}^{\lbrack k\rbrack}} \right\rbrack_{L}} \right)\mu^{k}}}} + {\mu^{g - \delta - 1}{\sum\limits_{h = 0}^{g - 2}{\left( {{\left\lbrack {R_{g - \delta - 1}^{\lbrack{g - \delta - 1}\rbrack}\theta^{\lbrack{d + \delta_{\theta} - h - 1}\rbrack}} \right\rbrack_{H}\mu} + \left\lbrack {R_{g - \delta - 1}^{\lbrack{g - \delta - 1}\rbrack}\theta^{\lbrack{d + \delta_{\theta} - h - 1}\rbrack}} \right\rbrack_{L}} \right)\mu^{d - h - 1}}}} + {\mu\quad R_{g - 1}}}} & \quad \end{matrix} & (59) \end{matrix}$ for 0≦g≦d+δ, wherein the computation for d+δ+1≦g≦2d+δ is formulated in an identical fashion except that the resultant feedback digits are not fed back but used as the output of the structure.
 16. A finite field multiplication/reduction structure according to claim 15, which includes architecture for time-space mappings using d cells to multiply two d-digit numbers and reducing the number of required cells to d/2 without changing the internal design of the cell.
 17. A finite field multiplication/reduction structure according to claim 16, in which a universal cell is used to build a multiplier that performs field multiplication in different fields such as GF(p), GF(2^(m)) and GF(p^(m)).
 18. A finite field multiplication/reduction structure according to claim 17, which is implemented as a systolic array wherein the array consists of similar cells that are laid out in regular pattern with localized inter-cell communication.
 19. A finite field multiplication/reduction structure according to claim 18, which includes inserting pipelining registers to improve performance by increasing clock frequency, reducing power consumption, and/or ensure localized interconnections.
 20. A finite field multiplication/reduction structure according to claim 19, in which pipelining registers are used to multiplex more than one multiplication operation on the same structure.
 21. A finite field multiplication/reduction structure according to claim 20, in which two operations are performed simultaneously in opposite directions on the same serial-serial field multiplication structure.
 22. A finite field multiplication/reduction structure according to claim 21 wherein different trade-offs between time and area can be provided by allowing for changing the number of digit multipliers in any cell to reduce the area at the cost of increasing the execution time.
 23. A finite field multiplication/reduction structure according to claim 11, which is scalable, wherein least-to-most significant digit first multiplication/reduction is implemented according to the formula: $\begin{matrix} {R = {\mu^{{- d} - \delta_{R}}{\sum\limits_{\phi = 0}^{\frac{d + \delta}{ɛ} - 1}{\sum\limits_{\tau = 0}^{\frac{d + \delta}{ɛ} - 1}{\mu^{{({\phi + \tau})}ɛ}\left( R_{ɛ - 1}^{({\phi,\tau})} \right)}}}}} & (60) \end{matrix}$ wherein R_(g) ^((φ,τ)), 0≦g≦ε−1, is given for multiplication by the following equation, $\begin{matrix} {R_{g}^{({\phi,\tau})} = {{x_{g - \delta_{X} + {\phi ɛ}}y_{g - \delta_{Y} + {\tau ɛ}}\mu^{{2g} - \delta_{X} - \delta_{Y}}} + {x_{g - \delta_{X} + {\phi ɛ}}\mu^{g - \delta_{X}}{\sum\limits_{j = 0}^{g - 1}{y_{j - \delta_{Y} + {\tau ɛ}}\mu^{j - \delta_{Y}}}}} + {y_{g - \delta_{Y} + {\tau ɛ}}\mu^{g - \delta_{Y}}{\sum\limits_{i = 0}^{g - 1}{x_{i - \delta_{X} + {\phi ɛ}}\mu^{i - \delta_{X}}}}} + {\theta^{\lbrack{g - \delta_{\theta} + {\phi ɛ}}\rbrack}R_{g - \delta + {\tau ɛ}}^{\lbrack 0\rbrack}\mu^{{2g} - \delta}} + {\theta^{\lbrack{g - \delta_{\theta} + {\phi ɛ}}\rbrack}\mu^{g}{\sum\limits_{k = {- \delta}}^{g - 1 - \delta}{R_{k + {\tau ɛ}}^{\lbrack 0\rbrack}\mu^{k}}}} + {R_{g - \delta + {\tau ɛ}}^{\lbrack 0\rbrack}\mu^{g - \delta}{\sum\limits_{h = 0}^{g - 1}{\theta^{\lbrack{h - \delta_{\theta} + {\phi ɛ}}\rbrack}\mu^{h}}}} + {\mu^{- 1}\quad R_{g - 1}^{({\phi,\tau})}}}} & (61) \end{matrix}$ wherein R_(g) ^((φ,τ)), 0≦g≦ε−1, is given for reduction by the following equation, $R_{g}^{({\phi,\tau})} = {V^{\lbrack{g + {{({\tau + \phi})}ɛ}}\rbrack} + {\theta^{\lbrack{g - \delta_{\theta} + {\phi ɛ}}\rbrack}R_{g - \delta + {\tau ɛ}}^{\lbrack 0\rbrack}\mu^{{2g} - \delta}} + {\theta^{\lbrack{g - \delta_{\theta} + {\phi ɛ}}\rbrack}\mu^{g}{\sum\limits_{k = {- \delta}}^{g - 1 - \delta}{R_{k + {\tau ɛ}}^{\lbrack 0\rbrack}\mu^{k}}}} + {R_{g - \delta + {\tau ɛ}}^{\lbrack 0\rbrack}\mu^{g - \delta}{\sum\limits_{h = 0}^{g - 1}{\theta^{\lbrack{h - \delta_{\theta} + {\phi ɛ}}\rbrack}\mu^{h}}}} + {\mu^{- 1}\quad R_{g - 1}^{({\phi,\tau})}}}$ wherein most-to-least significant digit first multiplication/reduction is implemented according to the formula: $\begin{matrix} {R = {\sum\limits_{\phi = 0}^{\frac{d + \delta}{ɛ} - 1}{\sum\limits_{\tau = 0}^{\frac{d + \delta}{ɛ} - 1}{\mu^{{({\phi + \tau})}ɛ}\left( R_{ɛ - 1}^{({\phi,\tau})} \right)}}}} & (62) \end{matrix}$ wherein R_(g) ^((φ,τ)), 0≦g≦ε−1, is given for multiplication by the following equation, $\begin{matrix} {R_{g}^{({\phi,\tau})} = {{x_{ɛ - 1 - g + \delta_{X} + {\phi ɛ}}y_{ɛ - 1 - g + \delta_{X} + {\tau ɛ}}\mu^{{2{({ɛ - 1 - g})}} + \delta_{X} + \delta_{Y}}} + {x_{ɛ - 1 - g + \delta_{X} + {\phi ɛ}}\mu^{ɛ - 1 - g + \delta_{X}}{\sum\limits_{j = 0}^{g - 1}{y_{ɛ - 1 - j + \delta_{X} + {\tau ɛ}}\mu^{ɛ - 1 - j + \delta_{Y}}}}} + {y_{ɛ - 1 - g + \delta_{Y} + {\tau ɛ}}\mu^{ɛ - 1 - g + \delta_{Y}}{\sum\limits_{i = 0}^{g - 1}{x_{ɛ - 1 - i + \delta_{x} + {\phi ɛ}}\mu^{ɛ - 1 - i + \delta_{x}}}}} + {\theta^{\lbrack{ɛ - 1 - g + \delta_{\theta} + {\phi ɛ}}\rbrack}R_{ɛ - 1 - g + \delta + {\tau ɛ}}^{\lbrack 0\rbrack}\mu^{{2{({ɛ - 1 - g})}} + \delta}} + {\theta^{\lbrack{ɛ - 1 - g + \delta_{\theta} + {\phi ɛ}}\rbrack}\mu^{ɛ - 1 - g}{\sum\limits_{k = 0}^{g - 1}{R_{ɛ - 1 - k + \delta + {\tau ɛ}}^{\lbrack 0\rbrack}\mu^{ɛ - 1 - k + \delta}}}} + {R_{ɛ - 1 - g + \delta + {\tau ɛ}}^{\lbrack 0\rbrack}\mu^{ɛ - 1 - g + \delta}{\sum\limits_{h = 0}^{g - 1}{\theta^{\lbrack{ɛ - 1 - h + \delta_{\theta} + {\phi ɛ}}\rbrack}\mu^{ɛ - 1 - h}}}} + {\mu\quad R_{g - 1}^{({\phi,\tau})}}}} & (63) \end{matrix}$ wherein R_(g) ^((φ,τ)), 0≦g≦ε−1, is given for reduction by the following equation, $\begin{matrix} {R_{g}^{({\phi,\tau})} = {V^{\lbrack{ɛ - 1 - g + {{({\tau + \phi})}ɛ}}\rbrack} + {\theta^{\lbrack{ɛ - 1 - g + \delta_{\theta} + {\phi ɛ}}\rbrack}R_{ɛ - 1 - g + \delta + {\tau ɛ}}^{\lbrack 0\rbrack}\mu^{{2{({ɛ - 1 - g})}} + \delta}} + {\theta^{\lbrack{ɛ - 1 - g + \delta_{\theta} + {\phi ɛ}}\rbrack}\mu^{ɛ - 1 - g}{\sum\limits_{k = 0}^{g - 1}{R_{ɛ - 1 - k + \delta + {\tau ɛ}}^{\lbrack 0\rbrack}\mu^{ɛ - 1 - k + \delta}}}} + {R_{ɛ - 1 - g + \delta + {\tau ɛ}}^{\lbrack 0\rbrack}\mu^{ɛ - 1 - g + \delta}{\sum\limits_{h = 0}^{g - 1}{\theta^{\lbrack{ɛ - 1 - h + \delta_{\theta} + {\phi ɛ}}\rbrack}\mu^{ɛ - 1 - h}}}} + {\mu\quad R_{g - 1}^{({\phi,\tau})}}}} & (64) \end{matrix}$ wherein ε represent the block size and φ and τ are the indices to identify a block, wherein V^([i])=W^([i]) when it is used in calculations for the first time and V^([i])=0 otherwise, where W^([i]) is the i^(th) digit of the number to be reduced, W, and wherein the outer two summations can be implemented in any way as long as the significance is taken into consideration,
 24. A finite field multiplication/reduction structure according to claim 23, wherein the outer summations are implemented as a serial-serial accumulation.
 25. A method for finite field multiplication in which an operand multiplication and a field reduction are calculated as a serial-serial multiplication, wherein the formula for least-to-most significant first computation is: $\begin{matrix} {R_{g}^{*} = {{x_{g + \delta - \delta_{R} - \delta_{X}}y_{g + \delta - \delta_{R} - \delta_{Y}}\mu^{g + {2\delta} - \delta_{X} - \delta_{Y} - {2\delta_{R}}}} + {x_{g + \delta - \delta_{R} - \delta_{X}}\mu^{\delta - \delta_{X} - \delta_{R}}{\sum\limits_{j = 0}^{g + \delta - \delta_{R} - 1}{y_{j - \delta_{Y}}\mu^{j - \delta_{Y}}}}} + {y_{g + \delta - \delta_{R} - \delta_{Y}}\mu^{\delta - \delta_{Y} - \delta_{R}}{\sum\limits_{i = 0}^{g + \delta - \delta_{R} - 1}{x_{i - \delta_{X}}\mu^{i - \delta_{X}}}}} + {\theta^{\lbrack{g + \delta - \delta_{R} - \delta_{\theta}}\rbrack}R_{g - \delta_{R}}^{*{\lbrack 0\rbrack}}\mu^{g + \delta - \delta_{\theta} - {2\delta_{R}}}} + {\theta^{\lbrack{g + \delta - \delta_{R} - \delta_{\theta}}\rbrack}\mu^{\delta - \delta_{R}}{\sum\limits_{k = 0}^{g - \delta_{R} - 1}{R_{k}^{*{\lbrack 0\rbrack}}\mu^{k}}}} + {R_{g - \delta_{R}}^{*{\lbrack 0\rbrack}}\mu^{- \delta_{R}}{\sum\limits_{h = 0}^{g + \delta - \delta_{R} - 1}{\theta^{\lbrack{h - \delta_{\theta}}\rbrack}\mu^{h}}}} + {\mu^{- 1}\quad R_{g - 1}^{*}}}} & (65) \end{matrix}$ and wherein the formula for most-to-least significant first computation is: $\begin{matrix} {{R_{g} = {{x_{d + \delta_{X} - g}y_{d + \delta_{Y} - g}\mu^{{2{({d - g})}} + \delta_{X} + \delta_{Y}}} + {x_{d + \delta_{X} - g}\mu^{d + \delta_{X} - g}{\sum\limits_{j = 0}^{g - 2}{y_{d + \delta_{Y} - j - 1}\mu^{d + \delta_{Y} - j - 1}}}} + {y_{d + \delta_{Y} - g}\mu^{d + \delta_{Y} - g}{\sum\limits_{i = 0}^{g - 2}{x_{d + \delta_{X} - i - 1}\mu^{d + \delta_{X} - i - 1}}}} + {\theta^{\lbrack{d + \delta_{\theta} - g}\rbrack}R_{g - \delta - 1}^{\lbrack{g - \delta - 1}\rbrack}\mu^{d - \delta - 1}} + {\theta^{\lbrack{d + \delta_{\theta} - g}\rbrack}\mu^{d - g}{\sum\limits_{k = 0}^{g - \delta - 2}{R_{k}^{\lbrack k\rbrack}\mu^{k}}}} + {R_{g - \delta - 1}^{\lbrack{g - \delta - 1}\rbrack}\mu^{g - \delta - 1}{\sum\limits_{h = 0}^{g - 2}{\theta^{\lbrack{d + \delta_{\theta} - h - 1}\rbrack}\mu^{d - h - 1}}}} + {\mu\quad R_{g - 1}}}}{{{for}\quad 0} \leq g \leq {d + \delta}}} & (66) \end{matrix}$
 26. A finite field multiplication structure according to claim 25, which is implemented either as a pure hardware unit, as a program stored on a computer readable storage device and executed on a digital computer, or as a combination of both.
 27. A finite field multiplication structure according to claim 26, wherein an operand multiplication and a field reduction are performed using two serial-serial multiplication structures.
 28. A finite field multiplication structure according to claim 26, wherein the computation of an operand multiplication and the computation of a field reduction are multiplexed or interleaved on a single serial-serial multiplication structure.
 29. A method for finite field multiplication/reduction that is based on a generalized bi-directional equation for serial-serial field multiplication/reduction that can be interpreted in both least-to-most and most-to-least directions and achieve using a parameter which indicates least-to-most when ρ=−1 and most-to-least when ρ=1, wherein the formula for bi-directional finite field multiplication is: $\begin{matrix} {R = \left\lbrack {\mu^{\frac{\delta_{R} + d}{2}{({\rho - 1})}}\begin{pmatrix} \begin{matrix} {\sum\limits_{i = 0}^{d + \delta - 1}{x_{{\rho{({\frac{d - 1}{2} + \delta_{X} - i})}} + \frac{d - 1}{2}}{\mu^{{\rho{({\frac{d - 1}{2} + \delta_{X} - i})}} + \frac{d - 1}{2}} \cdot}}} \\ {{\sum\limits_{j = 0}^{d + \delta - 1}{y_{{\rho{({\frac{d - 1}{2} + \delta_{Y} - j})}} + \frac{d - 1}{2}}\mu^{{\rho{({\frac{d - 1}{2} + \delta_{Y} - j})}} + \frac{d - 1}{2}}}} +} \end{matrix} \\ \begin{matrix} {\sum\limits_{h = 0}^{d + \delta - 1}{\theta^{\lbrack{{\rho{({\frac{d - 1}{2} + \delta_{\theta} - h})}} + \frac{d - 1}{2}}\rbrack}\mu^{{\rho{({\frac{d - 1}{2} - h})}} + \frac{d - 1}{2}}}} \\ {\sum\limits_{k = 0}^{d - 1}{R_{k}^{\lbrack{\frac{k}{2}{({\rho + 1})}}\rbrack}\mu^{k}}} \end{matrix} \end{pmatrix}} \right\rbrack^{\lbrack{0:{d + \delta - 1}}\rbrack}} & (67) \end{matrix}$ and wherein the formula for bidirectional finite field reduction is: $\begin{matrix} {R = \left\lbrack {\mu^{\frac{\delta_{R} + d}{2}{({\rho - 1})}}\begin{pmatrix} {{\sum\limits_{g = 0}^{d + \delta - 1}W^{\lbrack{{\rho{({\frac{d - 1}{2} - g})}} + \frac{d - 1}{2}}\rbrack}} +} \\ {\sum\limits_{h = 0}^{d + \delta - 1}{\theta^{\lbrack{{\rho{({\frac{d - 1}{2} + \delta_{\theta} - h})}} + \frac{d - 1}{2}}\rbrack}\mu^{{\rho{({\frac{d - 1}{2} - h})}} + \frac{d - 1}{2}}}} \\ {\sum\limits_{k = 0}^{d - 1}{R_{k}^{\lbrack{\frac{k}{2}{({\rho + 1})}}\rbrack}\mu^{k}}} \end{pmatrix}} \right\rbrack^{\lbrack{0:{d + \delta - 1}}\rbrack}} & (68) \end{matrix}$
 30. A finite field multiplication/reduction structure according to claim 29, which is implemented either as a pure hardware unit, as a program stored on a computer readable storage device and executed on a digital computer, or as a combination of both.
 31. A finite field multiplication/reduction structure according to claim 30, in which a serial-serial field multiplication operation is performed simultaneously in both directions, least-to-most and most-to-least.
 32. In an information system, the improvement comprising formulating multiplication and reduction of finite field multiplication in a combined serial-serial manner.
 33. In an information system according to claim 32 wherein time-space mapping of digit multiplications takes the form of overlapping staggered skewed triangles and wherein the triangles increase in size over time.
 34. In an information system according claim 33 which includes a column in each triangle and wherein a column in a triangle represents the operations performed stimulatingly in a cell. 